如何将BindAttribute.Prefix应用于Int32类型的操作方法参数?

时间:2013-04-10 18:01:52

标签: asp.net-mvc asp.net-mvc-4

当我将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类型的操作方法参数?

谢谢

1 个答案:

答案 0 :(得分:2)

name属性的值应为"originalPrefix"而不是"originalPrefix.value"。您正在尝试绑定参数而不是参数的value属性。