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
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.
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
$(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.
zaten bir httppost eylem var - [HttpPost] public ActionResult ApReport (ApReport Ddl) {.....}, bu httppost – ronibd
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
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
, 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 !!!");
}
});
gibi deneyin: MVC
@Html için web uygulaması kodunu dönüştürmek için konu altında takip edin .ActionLink ("ButtonText", yeni {= "ContreollerName" kontrolör, action = "ActionName", @sales = "En parametresi"}) sonra
Ve denetleyicisi bir eylem sonucu yapmak
Model adımı eklerken derleme hatası alıyorum – ronibd
modeline görünümünüzün en üstünde bir referans eklemeniz gerekir. Model Classes.YourModel – MNF
yardımınız için çok teşekkürler – ronibd