当我申请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 类型的动作方法参数?
谢谢你