当我将BindAttribute.Prefix
应用于操作参数value
时,我希望DefaultModelBinder
使用自定义前缀或回退到{{1 (在任何一种情况下empty prefix
参数都将被赋予数字value
)。但它不会这样做,因此以下代码抛出异常:
参数字典包含方法'System.Web.Mvc.ActionResult Index(Int32)'
100
Index.cshtml:
[HttpPost]
public ActionResult Index([Bind(Prefix = "originalPrefix")]int value)
{
return View();
}
public ActionResult Index()
{
return View();
}
a)为什么 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
参数?
b)如果可能,我们如何将value
应用于Int32类型的操作方法参数?
谢谢
答案 0 :(得分:2)
name
属性的值应为"originalPrefix"
而不是"originalPrefix.value"
。您正在尝试绑定参数而不是参数的value属性。