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



这是我被要求查看的一些遗留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"的方法参数设置为("请求")。如果我单击第二个按钮,则会将名为"clear"的方法参数设置为("清除")。我看不到任何自定义代码可以做到这一点,所以我认为它一定是框架中的某个东西。

我的问题是:点击按钮的name属性和action参数之间的映射是什么?

感谢

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

有一个名为DefaultModelBinder的内置默认类,它在正常情况下可以做到这一点,但如果需要,可以用自定义实现来替换它。DefaultModelBinder类可以将表单数据映射到String、Int、Decimal、Double或DateTime或自定义类对象。

需要记住的重要一点是表单字段的名称应该与操作方法参数的名称匹配,以便模型绑定器工作。在您的情况下,提交按钮的名称与操作方法参数名称匹配。

最新更新