这是我要求查看的一些遗留的ASP.NET MVC3代码。除了模型之外,它还有一个带有两个字符串参数的动作方法。
public ActionResult RequestUsername(StaffModel model, string request = null, string clear = null)
调用它的表单有两个提交按钮:
<input type="submit" class="button" title="Request username" value="Request Username" name="request" />
<input type="submit" class="button" title="Clear form" value="Clear" name="clear" />
如果单击第一个,则设置名为“request”的方法参数(为“request”)。如果单击第二个按钮,则会设置名为“clear”的方法参数(“清除”)。我看不到任何可以执行此操作的自定义代码,因此我认为它必须是框架中的内容。
我的问题是:点击按钮的name属性和action参数之间的映射是什么?
由于
答案 0 :(得分:1)
MVC模型绑定过程执行已发布的表单值与操作方法的参数之间的映射。
有一个名为DefaultModelBinder
的内置默认类,它可以在正常情况下执行此操作,但如果需要,可以将其替换为自定义实现.DefaultModelBinder类可以将表单数据映射到String,Int, Decimal,Double或DateTime或您的自定义类对象。
要记住的重要事项是表单字段的名称应与操作方法参数的名称匹配,以使模型绑定器起作用。在您的情况下,您的提交按钮的名称与操作方法参数名称匹配。