所以我有一个类似的视图:ASP MVC 3控制器动作不接收所有的参数
...
<input type="text" id="FieldOne" />
<input type="text" id="FieldTwo" />
<input type="text" id="FieldThree" />
...
模仿这个类:
public class Foo{
public string FieldOne { get; set; }
public string FieldTwo { get; set; }
public string FieldThree { get; set; }
}
而在相应的控制器的动作:
[HttpPost]
public ActionResult View(Foo param)
{
...
}
当我提交表单时,Post操作中的参数“param”正确地复制了所有字段的值除了其中的一个(比如说FieldOne)之外,它们与班级相匹配。这些输入由Html.TextboxFor()生成。
这是一个特殊的问题还是有我可能会忘记的东西?
你能告诉我们你真正的观点吗?你的例子中的问题是你没有使用'name'属性 – 2012-08-15 18:41:29
你可以使用Fiddler或其他一些HTTP调试工具来查看提交表单时要发布的数据。我同意安德烈的观点,至少在示例中,可能的问题是您没有在输入元素上设置名称,而只是在id上设置名称。您可以在视图中使用html帮助类,而不用手工编写HTML,以便可以设置输入的名称。请参阅:http://www.w3schools.com/aspnet/mvc_htmlhelpers.asp – 2012-08-15 18:46:25