【发布时间】:2012-08-16 14:26:16
【问题描述】:
所以我有类似这样的看法:
...
<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属性 -
您可以使用 Fiddler 或其他一些 HTTP 调试工具来查看提交表单时发布的数据。我同意 Andre 的观点,至少在示例中,可能的问题是您没有在输入元素上设置名称,而只是在 id 上设置。您可以在视图中使用 html 帮助类,而不是手动写出 HTML,这可能会设置输入的名称。见:w3schools.com/aspnet/mvc_htmlhelpers.asp
-
我也面临同样的问题,当我尝试将
input type='textbox'值传递给controller时,最后一个参数在控制器中始终显示为空。
标签: c# asp.net-mvc razor