我在我的控制器上有一个操作,它采用两个参数,当发布表单时应该捕获这些参数:
[HttpPost]
public ActionResult Index(MyModel model, FormAction action)
这个想法是模型数据应该被捕获,MyModel
用户按下的按钮应该被捕获FormAction
:
public class MyModel
{
public string MyValue { get; set; }
}
public class FormAction
{
public string Command { get; set; }
}
这是我的看法:
@model TestApp.Models.MyModel
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<div>
@using (Html.BeginForm("Index", "Home"))
{
@Html.TextBoxFor(x => x.MyValue)
<input type="submit" value="OK" name="command" />
<input type="submit" value="Cancel" name="command" />
}
</div>
</body>
</html>
如果我向名为“command”的操作添加另一个字符串参数,则按钮的值会通过,但它不会绑定到参数Command
上的属性FormAction
- 参数始终为空。
如果我添加一个Command
属性,MyModel
那么按钮值确实会通过。
MVC 模型绑定中是否存在阻止多个复杂模型绑定在一种操作方法中的内容?