有人能给我一个一次保存所有html网格数据的例子吗?我有这样的风景。
@model IList<SURVEY.Models.Question>
@using (Html.BeginForm("Index", "Survey", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @class = "form-3" }))
{
@foreach(var item in Model)
{
<tr>
<td>@item.Ans1</td>
<td align="center">
<label>
<input type="radio" name="optionAS_@item.QuestionId" value="1" id="optionAS_1" onclick="disableAs(this,@item.QuestionId,1)"/>
</label>
</td>
<td align="center">
<label>
<input type="radio" name="optionAS_@item.QuestionId" value="2" id="optionAS_1" onclick="disableAs(this,@item.QuestionId,2)"/>
</label>
</td>
</tr>
}
}我在控制器post中获得这些控件的空值。
[HttpPost]
public ActionResult Index(IList<Question> ques)
{
return View();
}我要叫ques是null在这里。有人能告诉我怎么解决这个问题吗?
发布于 2013-08-31 18:54:34
您应该使用html帮助程序绑定模型的属性,您的代码如下所示:
@for(var i = 0; i < Model.Count; i++)
{
<tr>
<td>@Html.HiddenFor(_ => Model[i].Id)
Model[i].Ans1
</td>
<td align="center">
<label>
@Html.RadioButtonFor(_ => Model[i].Name)
</label>
</td>
...
</tr>
}也是如此。需要HiddenFor助手来创建隐藏输入,以便将Id值发送到服务器,从而使您能够识别您的对象。查看一下MVC中的Html助手,您将在表单提交时将模型返回到服务器。
https://stackoverflow.com/questions/18548812
复制相似问题