3

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

谢谢你

4

1 回答 1

2

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

于 2013-04-10T18:05:38.740 回答