Asp.net mvc 3 mvc3中的控制器视图

Asp.net mvc 3 mvc3中的控制器视图,asp.net-mvc-3,razor,radiobuttonfor,Asp.net Mvc 3,Razor,Radiobuttonfor,我在将值从视图传递到控制器时遇到问题 这是我的视图: @model IEnumerable<SQLOperation.Models.QuestionClass.Tabelfields> @{ ViewBag.Title = "Question"; } <h3> Question</h3> @{int i = 0;} @foreach (var item in Model) { using (Html.BeginForm(

我在将值从视图传递到控制器时遇到问题

这是我的视图

 @model  IEnumerable<SQLOperation.Models.QuestionClass.Tabelfields>

@{
     ViewBag.Title = "Question";
 }

 <h3> Question</h3>

 @{int i = 0;}

 @foreach (var item  in Model)
 {

  using (Html.BeginForm("Question", "Home"))
  {
      @Html.DisplayFor(modelItem => item.QuestionName)
      @Html.HiddenFor(m => item.QuestionID)      
         <br /><br />   
      if (item.Option1 != "")
      {
        @Html.RadioButtonFor(m => item.SelectedOption, item.Option1, item)                
        @Html.DisplayFor(modelItem => item.Option1)
                    <br /><br />                
      }

      if (item.Option2 != "")
      {
         @Html.RadioButtonFor(m => item.SelectedOption, item.Option2, item)              
         @Html.DisplayFor(modelItem => item.Option2)
                    <br /><br />
      }

      if (item.Option3 != "")
      {           
        @Html.RadioButtonFor(m => item.SelectedOption, item.Option3, item)              
        @Html.DisplayFor(modelItem => item.Option3)
                    <br /><br />
      }


      if (item.Option4 != "")
      {
       @Html.RadioButtonFor(m => item.SelectedOption, item.Option4, item)             
                    @Html.DisplayFor(modelItem => item.Option4) 
                <br /><br />     
      }
      i = (Int16)i + 1;


      if (Model.Count() == i)
      {
                <input name="btnsumbit" type="submit" value="Submit Feedback" 
                style="font-family:Segoe UI Light;font-size:medium;"/>
      }
  }
 }
控制器:

@foreach (var item in Model)
{
  using (Html.BeginForm("Question", "home", new { email=item.Email,  q=item.QuestionID}))
  {
      @Html.DisplayFor(modelItem => item.QuestionName)
      @Html.HiddenFor(m => item.QuestionID)
       .

       .

       .
       . 
  }
}
[HttpPost, ActionName("Question")] 
    public void Question(string email,int q) 
    {   
    }
我在电子邮件和q中获得价值

那个么,我如何才能在控制器中获得所有值,即QuestionId、Email、Questionname及其相应的选定值(radiobutton)

i、 e.在以下控制器中:

[HttpPost, ActionName("Question")] 
    public void Question(IEnumerable<QuestionClass.Tabelfields> items) 
    { 
    }
[HttpPost,ActionName(“问题”)]
公共无效问题(IEnumerable items)
{ 
}

您需要为Html编制索引。*以用于此类项目

@Html.RadioButtonFor(m => m[i].SelectedOption, item.Option3, item)
为了使事情更简单,我可能会去掉
foreach
&并分离
i
声明,并使用以下命令:

@for(int i=0; i < Model.Count; i++)
{
    @Html.HiddenFor(m => m[i].QuestionID) 
    @Html.RadioButtonFor(m => m[i].SelectedOption, Model[i].Option3, Model[i])
}
@for(int i=0;im[i].QuestionID)
@Html.RadioButton(m=>m[i]。选择选项,型号[i]。选项3,型号[i])
}
等等

这样的索引将导致html呈现时索引保持不变:

<input type='hidden' name=[0].'QuestionId' />
<input type='hidden' name=[1].'QuestionId' />
<input type='hidden' name=[2].'QuestionId' />

而不是你目前正在做的事情,最终呈现为这样

<input type='hidden' name='QuestionId' />
<input type='hidden' name='QuestionId' />
<input type='hidden' name='QuestionId' />


在没有索引的情况下,每个表单字段都有相同的名称,因此您可能会认为只返回了一个表单字段。

@Ajay try m[i]。选择选项。因此,请查看以下内容:我创建了强类型视图@model IEnumerable它在更改后也会出错Shello,stafford Williams我已经解决了我的问题谢谢您的帮助
@for(int i=0; i < Model.Count; i++)
{
    @Html.HiddenFor(m => m[i].QuestionID) 
    @Html.RadioButtonFor(m => m[i].SelectedOption, Model[i].Option3, Model[i])
}
<input type='hidden' name=[0].'QuestionId' />
<input type='hidden' name=[1].'QuestionId' />
<input type='hidden' name=[2].'QuestionId' />
<input type='hidden' name='QuestionId' />
<input type='hidden' name='QuestionId' />
<input type='hidden' name='QuestionId' />