【发布时间】:2010-11-01 07:15:15
【问题描述】:
我有一个包含多个字段的数据类:
public class Person
{
public int id { get; set }
public string Name { get; set; }
public double Rate { get; set; }
public int Type { get; set; }
}
如果我理解Scott Hanselman's take on binding arrays of objects,我应该能够创建一个呈现如下 HTML 的表单视图:
<input name="Person[0].id" value="26" type="hidden" />
<input name="Person[0].Name" value="Tom Smith" type="text" />
<input name="Person[0].Rate" value="40.0" type="text" />
<select name="Person[0].Type">
<option selected="selected" value="1">Full Time</option>
<option value="2">Part Time</option>
</select>
<input name="Person[1].id" value="33" type="hidden" />
<input name="Person[1].Name" value="Fred Jones" type="text" />
<input name="Person[1].Rate" value="45.0" type="text" />
<select name="Person[1].Type">
<option value="1">Full Time</option>
<option selected="selected" value="2">Part Time</option>
</select>
然后我应该能够使用如下所示的操作方法在我的控制器中捕获这些数据:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult People(Person[] array)
{
// Do stuff with array
}
但它不起作用。数组变量始终为空。我将此解释为数据绑定不起作用。但为什么呢?
【问题讨论】:
-
可能会尝试使用通用列表而不是数组。
-
Tried List
而不是 Person[],仍然返回 null。 Hanselman 模式需要 Person[]。 -
您是否调试和分析过您的 POST 数据,以验证数据是否按照 Scott 的文章发布?
-
尚未,但数据将成功填充 FormsCollection 变量。我可以解析它,但我会完全绕过绑定系统。
-
表单标记是什么样的?
标签: c# asp.net-mvc