任何人都可以给我一个保存所有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>
}
}
我在控制器帖子中获取这些控件的空值。
[HttpPost]
public ActionResult Index(IList<Question> ques)
{
return View();
}
我在这里ques
null
。谁能告诉我怎么解决这个问题?
答案 0 :(得分:1)
您应该使用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 helper来创建隐藏输入以将Id值发送到服务器,以便您能够识别您的对象。查看Html Helpers in MVC,您将在提交表单时将模型返回到服务器。