2013-11-25 42 views
6

我有一個剃刀視圖(框架4.5,MVC 5)和一個html輸入類型=複選框的值等於模型布爾值,而不是true或false它綁定「值」。MVC 5剃刀視圖不綁定布爾輸入

這是我的代碼:

for (int index = 0; index < Model.Item1.Locations.Length; index++) 
     { 
      WSTupleOfInt32StringStringBoolean location = Model.Item1.Locations[index]; 
       <div class="editor-field"> 
        <input id="@string.Format("presentation.ServiceInfoes[{1}].Locations[{0}].Key", index, Model.Item2)" type="checkbox" value="@location.ThirdValue" name="@string.Format("presentation.ServiceInfoes[{1}].Locations[{0}].ThirdValue", index, Model.Item2)" /> 
       </div> 
       <div class="editor-label"> 
        <label for="@string.Format("presentation.ServiceInfoes[{1}].Locations[{0}].Key", index, Model.Item2)">@location.FirstValue</label> 
        @if (!string.IsNullOrEmpty(location.SecondValue)) 
        { 
         <a href="@string.Format("//maps.google.com/?q={0}", location.SecondValue)" target="_blank"><img alt="@location.SecondValue" src="@string.Format("//maps.google.com/maps/api/staticmap?center={0}&markers=color:blue|{0}&zoom=15&size=64x64&sensor=false", location.SecondValue)" /></a> 
        } 
       </div><br /> 
     } 

location.ThirdValue是布爾屬性,調試運行它的優良屬性..但在HTML我得到value="value",而不是value="false"

發生了什麼事?

回答

1

做這個

<input id="@string.Format("presentation.ServiceInfoes[{1}].Locations[{0}].Key", index, Model.Item2)" type="checkbox" @(location.ThirdValue ? "checked" : "") name="@string.Format("presentation.ServiceInfoes[{1}].Locations[{0}].ThirdValue", index, Model.Item2)" /> 

值不設置複選框被檢查與否,價值具有不同的功能。例如,如果您將值設置爲'測試'並選中複選框,則當您提交表單時,您會看到提交的變量的真實值將是'測試';

你可以用它做很酷的東西。例如,您的表單上有3個複選框。他們都有相同的名字,但有不同的價值。當你提交表單時,你得到的結果將是逗號分隔的字符串與選中複選框的值;

6

看到這個Answer

基本上你想使用HTML.CheckBoxFor(model => model.booleanProperty)