2015-07-13 115 views
-1

型号是名单在这里同时提交按钮单选按钮,复选框值获得空单选按钮,复选框值获得空在asp.net MVC提交

@foreach (var item in Model) 
    { 
     @Html.HiddenFor(m => m[Countid].ActivityType) 
     <div class=" "> 
      <div class="clear"> 
      </div> 
      @Html.Label("Group Name", "Group Name", new { @class = "control-label col-md-2", @style = "font-weight:700" }) 
      <label class="control-label col-md-2"> : @item.PfpActivityGroup.ActivityGroupName</label> 
     </div> 
     <div class=""> 
      @Html.Label("Activity Type", "Activity Type", new { @class = "control-label col-md-2", @style = "font-weight:700" }) 
      <label class="control-label col-md-2"> : @item.ActivityType</label> 
      <div class="clear"> 
      </div> 
     </div> 

     if (item.PfpQsnCreationMasters != null) 
     { 
      <div class=" "> 
       <label for="ActivityType" class="field-label"> 
        Question Description 
       </label> 
       <label class="control-label col-md-2"> : @item.PfpQsnCreationMasters.SurveyDesc</label> 
       <div class="clear"> 
       </div> 
       @Html.HiddenFor(m => m[Countid].PfpQsnCreationMasters.SurveyDesc) 
       @Html.DropDownList("NoOfOptions", ViewData["NoOfOptions"] as SelectList, new { @class = "hide" }) 
       @Html.DropDownListFor(m => @item.PfpQsnCreationMasters.QuestionType, ViewData["QuestionType"] as SelectList, new { @class = "hide" }) 

       @if (item.Type == "TextBox") 
       { 
        <div id="divTextBox"> 
         @Html.TextBoxFor(x => item.txtQsnDesc); 
         @Html.HiddenFor(x => item.txtQsnDesc) 
         <div class="clear"> 
         </div> 
        </div> 
       } 
       @if (item.Type == "RedioButton") 
       { 
        <div > 
        @if (item.option1 != null) 
        { 
         @Html.RadioButtonFor(x => item.RadioOptionSelected, @item.option1) 
         <label class="control-label col-md-2"> @item.option1</label> 
         <div class="clear"> 
         </div> 
        } 
        @if (item.option2 != null) 
        { 
         @Html.RadioButtonFor(x => item.RadioOptionSelected, @item.option2) 
         <label class="control-label col-md-2"> @item.option2</label> 
         <div class="clear"> 
         </div> 
        } 
        @if (item.option3 != null) 
        { 
         @Html.RadioButtonFor(x => item.RadioOptionSelected, @item.option3) 
         <label class="control-label col-md-2"> @item.option3</label> 
         <div class="clear"> 
         </div> 
        } 
        @if (item.option4 != null) 
        { 
         @Html.RadioButtonFor(x => item.RadioOptionSelected, @item.option4) 
         <label class="control-label col-md-2"> @item.option4</label> 
         <div class="clear"> 
         </div> 
        } 
         @Html.HiddenFor(x => item.RadioOptionSelected) 
       </div> 
       } 
       @if (item.Type == "CheckBox") 
       { 
        <div id="divCheckBox"> 
         @if (item.ListTextBox1 != null) 
         { 

          @Html.CheckBoxFor(x => item.IsOption1Selected) <label class="control-label col-md-2"> @item.ListTextBox1</label> 
          @Html.HiddenFor(x => item.IsOption1Selected) 
          <div class="clear"> 
          </div> 
         } 
         @if (item.ListTextBox2 != null) 
         { 
          @Html.CheckBoxFor(x => item.IsOption2Selected) <label class="control-label col-md-2"> @item.ListTextBox2</label> 
          @Html.HiddenFor(x => item.IsOption2Selected) 
          <div class="clear"> 
          </div> 
         } 
         @if (item.ListTextBox3 != null) 
         { 
          @Html.CheckBoxFor(x => item.IsOption3Selected) <label class="control-label col-md-2"> @item.ListTextBox3</label> 
          @Html.HiddenFor(x => item.IsOption3Selected) 
          <div class="clear"> 
          </div> 
         } 
         @if (item.ListTextBox4 != null) 
         { 
          @Html.CheckBoxFor(x => item.IsOption4Selected) <label class="control-label col-md-2"> @item.ListTextBox4</label> 
          @Html.HiddenFor(x => item.IsOption4Selected) 
          <div class="clear"> 
          </div> 
         } 
        </div> 
       } 

      </div> 
     } 
     <div class="clear"> 
     </div> 
     <br /> 
     Countid = Countid + 1; 
    } 
+0

您不能使用'foreach'循环生成表单控件 - 它会产生重复的'name'属性不能被绑定到一个集合(没有索引器)和重复'id'属性这是无效的HTML。您需要使用'for'循环或自定义的'EditorTemplate' - 参考[这个答案](http://stackoverflow.com/questions/30363177/mvc-action-isnt-triggered-in-controller/30363319#30363319)例如 –

回答

0

我通常会添加为一个评论,但我点击缺乏+50代表

尝试把该上的复选框的型号值:

public class mymodel { 

    [DisplayFormat(ConvertEmptyStringToNull = false)] 
    public bool mycheckboxvalue { get; set; } 

} 
+0

提交所有复选框值变为false且单选按钮值变为空 –

+0

将模型传递给视图时,默认情况下所有空字符串均转换为空。上面的代码将关闭它并保留空字符串值并停止空值。 – Scott