控制器......
[HttpPost]
public virtual ActionResult PickAColour(ColourModel model,
string imgbtn, string returnUrl) {
和视图......
@using (Html.BeginForm(MVC.Home.PickAColour(Model,"",(string)ViewBag.ReturnUrl))) {
@Html.LabelFor(m => m.SomeProperty)
@Html.TextBoxFor(m => m.SomeProperty)
...
...
<p>Now pick a colour</p>
<input type="image" name="imgbtn" src="@Links.Content.Images.A_png" value="A"/>
<input type="image" name="imgbtn" src="@Links.Content.Images.B_png" value="B"/>
<input type="image" name="imgbtn" src="@Links.Content.Images.C_png" value="C"/>
<input type="image" name="imgbtn" src="@Links.Content.Images.D_png" value="D"/>
<input type="image" name="imgbtn" src="@Links.Content.Images.E_png" value="E"/>
<input type="image" name="imgbtn" src="@Links.Content.Images.F_png" value="F"/>
}
现在,这不起作用,因为我没有将imgbtn参数传递给方法。我不知道这样做的正确方法是什么?
答案 0 :(得分:2)
您必须使用正确的方法重载:
@Html.BeginForm(MVC.Home.ActionNames.PickAColour, MVC.Home.Name,
new { imgbtn = "", returnUrl = (string)ViewBag.ReturnUrl },
FormMethod.Post, null)
对于复杂模型对象Model
,您无法使用上述路径值传递它。单击提交按钮时应提交此项,以便ASP.NET MVC Model Binder可以完成其工作。