保存MVC4 html网格的所有数据

时间:2013-08-31 13:44:50

标签: asp.net-mvc asp.net-mvc-4

任何人都可以给我一个保存所有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。谁能告诉我怎么解决这个问题?

1 个答案:

答案 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,您将在提交表单时将模型返回到服务器。