2015-07-13 98 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

相關問題