當我申請BindAttribute.Prefix
到操作參數value
,我希望DefaultModelBinder
要麼使用定製前綴或回落至empty prefix
(在這兩種情況下value
參數將被分配的號碼100
)。但相反,它沒有,因此下面的代碼會引發異常:如何將BindAttribute.Prefix應用於Int32類型的操作方法參數?
參數字典包含一個null條目,用於方法System.Web.Mvc的非空類型'System.Int32'的參數'value'的值.ActionResult指數(Int32)已」
[HttpPost]
public ActionResult Index([Bind(Prefix = "originalPrefix")]int value)
{
return View();
}
public ActionResult Index()
{
return View();
}
Index.cshtml:
using (Html.BeginForm())
{
<input id="originalPrefix.value" name="originalPrefix.value" type="text" value="100" />
<input id="value" name="value" type="text" value="100" />
<input type="submit" value="submit" />
}
一)爲什麼不DefaultModelBinder
能結合表單數據到value
參數?
b)如果可能,我們如何將BindAttribute.Prefix
應用於Int32類型的操作方法參數?
謝謝
相關:[如何更改動作參數,並使其在不改變路由的情況下在asp.net mvc中工作?](http://stackoverflow.com/q/4749499/11683) – GSerg 2016-11-01 17:53:27