所以我有一个这样的动作方法:
public ViewResult CareerSearch()
{
CareerSearchModel model = GetCareerSearchModel();
return View("Search", model);
}
在视图中,我手动创建一个模型属性的复选框列表。输出最终看起来像这样:
<input id="location51438342" type="checkbox" checked="True" value="2" name="locations">
<label for="location51438342">Austin</label>
<input id="location14609737" type="checkbox" checked="True" value="9" name="locations">
<label for="location14609737">Dallas</label>
<input id="location25198218" type="checkbox" checked="True" value="11" name="locations">
<label for="location25198218">Houston</label>
因此,在处理表单POST的action方法中,我想获得对模型和复选框整数数组的引用。但是,当我单步执行以下操作方法时,“model”为null:
[HttpPost]
public ViewResult CareerSearch(CareerSearchModel model, int[] locations)
{
//omitted for brevity
}
我在这里缺少什么?如何获取对模型和复选框值数组的引用?
答案 0 :(得分:0)
你必须回复模型本身的所有字段,也就是将它们隐藏在表单内的标签中。你可以使用firebug来查看回发的内容。如果它没有被回发,你必须在帖子后的动作中重新创建它。
答案 1 :(得分:0)
模型不会保存在服务器上的任何位置,也不会自动回发到POST数据中(使用Fiddler进行确认)。您必须以与GET操作相同的方式实例化模型,并使用其他参数进行相应的修改。
有关如何将POST表单数据映射到模型中的信息,请参阅NerdDinner。