2016-03-31 20 views
1

Web formunu MVC C# traş makinesi projesine dönüştürüyorum. Bir bağlantı oluşturacağı ve formu aynı sayfaya toplayacağı Razor'da aynı işlevselliği nasıl alacağımı bilmek isterim. web formu kodudur - peşinMVC C# Jiletli Linkbutton eşdeğeri

cevap

1

Sen ButtonText tanımlamak için ViewData kullanabileceğiniz bu

@Html.ActionLink("buttonText", "ControllerAction", "YourController ", 
     new { @sales = YourModel.Parameter}, new { @class =yourcssclass" }) 

Denetleyiciniz

public class YourController : Controller 
{ 
public ActionResult Index() 
{ 
     var model = YourDataToDisplay; 

     return View(model); 
} 
public ActionResult ControllerAction(int sales) 
{ 
    //..... 
} 
} 

deneyin.

+0

Model adımı eklerken derleme hatası alıyorum – ronibd

+0

modeline görünümünüzün en üstünde bir referans eklemeniz gerekir. Model Classes.YourModel – MNF

+0

yardımınız için çok teşekkürler – ronibd

0

Bir çapa etiketi yazabilirsiniz içinde

<asp:LinkButton ID="lnkBtn_1" runat="server" Text='<%#Eval("Sales") %>' OnCommand="LinkButton1_Command" CommandArgument='<%#Eval("Sales") %>' ></asp:LinkButton> 

teşekkürler. Ancak bağlantı etiketini tıklamak genellikle formu göndermez, ancak bir HTTP GET isteğini tetikler. Bu yüzden form gönderimini yapmak için bir java script yazmanız gerekiyor. Eğer (Customer denetleyicisi Create eylem yönteminin sizin HttpPost eylem kod yürütebilir

Şimdi
$(function(){ 
    $("#linkToSubmit").click(function(e){ 
    e.preventDefault(); // prevent the normal link click behaviour (GET) 
    $(this).closest("form").submit(); 
    }); 
}); 

bu bağlantı etiketinin üzerinde tıklama olayı bağlamak jQuery ve bazı mütevazi javascript kodu kullanarak

<form action="Customer/Create"> 
    <a href="#" id="linkToSubmit">Submit</a> 
</form> 

, Bu formun action için ayarlanmış olduğundan

Başka bir seçenek, form düğmenizdeki form düğmesini tutmak ve görünecek şekilde stil tutmaktır. in this answer açıklandığı gibi bir bağlantı gibi.

+0

zaten bir httppost eylem var - [HttpPost] public ActionResult ApReport (ApReport Ddl) {.....}, bu httppost – ronibd

+0

içinde verilen değeri nasıl alacağım Form alan adlarınızla eşleştiği sürece ApReport sınıflarının mülkiyet isimleri, Model bağlama, gönderilen form değerlerinin Ddl nesnesine eşlenmesini sağlar. – Shyju

+0

Model sınıfına (public string linkToSubmit {get; set;}) ekledim ve sınıfın içinde (string lnkBtn; lnkBtn = Request.Form ["linkToSubmit"];) ancak bağlantıyı tıkladıktan sonra herhangi bir değer sunmuyor denetleyiciye, sadece aynı sayfaya dön – ronibd

0

, rezor bağlantı düğmesini kullanın Eğer Ajax Formu başlayın veya ajax sonrası yöntemiyle basit json nesnesi kullanabilirsiniz kullanmak zorunda aynı sayfada içine bu <button type="button" onclick="@("window.location.href='" [email protected]("ActionResult", "Controller") + "'")"> Link Button </button> <a href="@Url.Action("ActionResult", "Controller")"> Link Button </a> @Html.ActionLink("Text","ActionResult","Controller") göndererek formun herhangi denemek için birçok yol vardır. Eğer o zaman MVC öğreticiler temel olduğunu kontrol etmeniz gerekir MVC yeniyseniz bu

$("#btnSave").click(function (e) { 

var urlpath = '@Url.Action("ActionResult", "Controller")'; 
$.ajax({ 
    url: urlpath , 
    type: "POST", 
    data: JSON.stringify({ 'Options': someData}), 
    dataType: "json", 

    contentType: "application/json; charset=utf-8", 
    success: function (data) { 
     if (data.status == "Success") { 
      alert("Done"); 

     } else { 
      alert("Error occurs on the Database level!"); 
     } 
    }, 
    error: function() { 
     alert("An error !!!"); 
    } 
});