操作方法参数设置为提交按钮的值

时间:2015-12-17 14:54:24

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

这是我要求查看的一些遗留的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参数之间的映射是什么?

由于

1 个答案:

答案 0 :(得分:1)

MVC模型绑定过程执行已发布的表单值与操作方法的参数之间的映射。

有一个名为DefaultModelBinder的内置默认类,它可以在正常情况下执行此操作,但如果需要,可以将其替换为自定义实现.DefaultModelBinder类可以将表单数据映射到String,Int, Decimal,Double或DateTime或您的自定义类对象。

要记住的重要事项是表单字段的名称应与操作方法参数的名称匹配,以使模型绑定器起作用。在您的情况下,您的提交按钮的名称与操作方法参数名称匹配。