如果你使用
Html.TextBoxFor()类型的方法,你可能最终会得到在它们的名字中有点的Form控件,如下所示:
< input type =“text”name =“Contact.FirstName”id =“Contact_FirstName”/>
如果要MVC将这些命名字段映射到控制器中的参数(而不是对象参数或其他参数),则必须获取参数名称.点怎么办?
这不是:
[HttpPost] public ActionResult FooAction(string firstName)
不是这个:
[HttpPost] public ActionResult FooAction(string contact_FirstName)
似乎工作
编辑:有一个合适的对象参数可以工作(例如see clicktricity’s answer),但我正在寻找一种方法来使用命名值参数.
解决方法
我发现另一种方式,一种黑客,因为我认为这是滥用
BindAttribute,将firstName参数与Contact.FirstName输入元素相关联:
[HttpPost] public ActionResult FooAction([Bind(Prefix="Contact.FirstName")]string firstName)
这肯定与ASP.NET MVC 1.