如果你正在使用Html.TextBoxFor()类型方法,你最终可能会得到名称中带点的Form控件,如下所示:
<input type="text" name="Contact.FirstName" id="Contact_FirstName" />
如果您希望MVC将这些命名字段映射到控制器中的参数(而不是对象参数或其他参数),则必须使参数名称正确.怎么办点?
这不是:
[HttpPost]
public ActionResult FooAction(string firstName)
Run Code Online (Sandbox Code Playgroud)
不是这个:
[HttpPost]
public ActionResult FooAction(string contact_FirstName)
Run Code Online (Sandbox Code Playgroud)
似乎工作.
编辑:有一个合适的对象参数可以工作(例如,参见clicktricity的答案),但我正在寻找一种方法来使用命名值参数.
Ale*_*yev 17
我找到了另一种方法,一种黑客,因为我认为这是滥用BindAttribute,将firstName参数与Contact.FirstName输入元素相关联:
[HttpPost]
public ActionResult FooAction([Bind(Prefix="Contact.FirstName")]string firstName)
Run Code Online (Sandbox Code Playgroud)
这肯定适用于ASP.NET MVC 1.
| 归档时间: |
|
| 查看次数: |
4116 次 |
| 最近记录: |