当我申请BindAttribute.Prefix一个动作参数value时,我希望DefaultModelBinder要么使用自定义前缀,要么回退到一个empty prefix(在任何一种情况下value参数都将被分配数字100)。但相反,它什么都不做,因此下面的代码会引发异常:
参数字典包含方法“System.Web.Mvc.ActionResult Index(Int32)”的不可为空类型“System.Int32”的参数“值”的空条目
[HttpPost]
public ActionResult Index([Bind(Prefix = "originalPrefix")]int value)
{
return View();
}
public ActionResult Index()
{
return View();
}
索引.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" />
}
a) 为什么不能将表单数据DefaultModelBinder绑定到参数?value
b) 如果可能,我们如何应用BindAttribute.Prefix到 Int32 类型的动作方法参数?
谢谢你