2013-08-04 23 views
1

我已经创建了一个页面来向用户显示问题列表&阅读每个问题的用户输入。从视图中读取用户输入的集合?

问题:当用户提交表单时,Model参数为空。

观的POST操作的定义如下 -

[HttpPost] 
public ActionResult Index(IEnumerable<Question> model) 
{ 
    return View(model); 
} 

代码以显示选项对用户是如下 -

@foreach (var quest in Model) 
{ 
    <li> 
     @Html.LabelFor(x => quest.Title, quest.Title) 
     <ol class="Opt"> 
      @foreach (var opt in quest.Options) 
      {          
       <li>@Html.RadioButtonFor(o => opt, opt.Title) 
        @Html.LabelFor(o => opt.Title, opt.Title)         
       </li> 
      } 
     </ol> 
    </li> 
} 

这里模型是@model List<LakshyaMvc.Models.Question>,当然我已经包裹代码内@using (Html.BeginForm())

回答

1

更改您的视图模型。

@using (Html.BeginForm("Index", "Queries", FormMethod.Post)) 
{ 
    for (int i = 0; i < Model.Count; i++) 
    { 
    <li> 
     @Html.LabelFor(x => Model[i].Question, Model[i].Question) 
     <ol class="Opt"> 
      @for (int j = 0; j < Model[i].Options.Count; j++) 
      {          
       <li>@Html.RadioButtonFor(o => Model[i].Options[j].Option, false) 
        @Html.LabelFor(o => Model[i].Options[j].Option, 
                Model[i].Options[j].Option) 
       </li> 
      } 
     </ol> 
    </li> 
    <input type="submit" name="Submit" value="Submit" /> 
    } 
}