[英]mvc3 passing button name to post
按鈕名稱未傳遞給我的操作方法。
這是我的觀點(簡體):
@using (Html.BeginForm("HandleSubmit", "Home", FormMethod.Post))
{
<input id="btnAddLineItem" type="submit" name="AddLineItem" value="AddLineItem" />
}
這是控制器方法:
[HttpPost, ActionName("HandleSubmit")]
public ActionResult HandleSubmit(int? id, string btnSubmit)
{
switch (btnSubmit)
{
case "AddLineItem":
break;
case "AddNewOrder":
break;
}
return View("OrderDetails");
}
btnSubmit值始終為null。 我需要做些什么?
name
是綁定到您的方法簽名的內容,而不是id
。
使用以下內容:
public ActionResult HandleSubmit(string AddLineItem, string AddNewOrder)
{
/* ... code ... */
if(!string.IsNullOrEmpty(AddLineItem)) {
}
else if(!string.IsNullOrEmpty(AddNewOrder)) {
}
/* ... code ... */
}
請記住,表單發布會將name/value
對的multipart/form-data
集合發送到服務器。
您不會以任何方式發送任何名稱或值的按鈕ID。
我建議您制作一個具有以下兩個屬性的模型:
在get方法中,創建模型的實例:
public ActionResult HandleSubmit()
{
MyModel model = new MyModel();
return View(model);
}
在post方法中,使用模型的屬性來獲取值。
[HttpPost, ActionName("HandleSubmit")]
public ActionResult HandleSubmit(MyModel model)
{
switch (model.Order)
{
case "AddLineItem":
break;
case "AddNewOrder":
break;
}
return View("OrderDetails");
}
您的視圖可能類似於以下內容:
@model MvcApplication3.Controllers.MyModel
@using (Html.BeginForm("HandleSubmit", "Home", FormMethod.Post))
{
@Html.EditorFor(x => Model.Order)
<input id="btnAddLineItem" type="submit" name="AddLineItem" value="AddLineItem" />
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.