2016-01-22 109 views
0

未應用checked屬性,條件返回true,但單選按鈕未被檢查。單選按鈕和選中的屬性

我想根據我的模型值設置其中一個選中的單選按鈕。

<div class="col-md-6 col-sm-6"> 
<div class="col-md-6 col-sm-6"> 
    <div class="float-right"> 
     <table> 
      <tr> 
       <td class="td-radio"> 
        <input id="Voiture_IsTrajetSimple" name="Voiture_TypeTrajet" type="radio"                     
         <% var KMVoiture_IsTrajetSimple = Model.KMVoiture_IsTrajetSimple; 
          if (KMVoiture_IsTrajetSimple) 
          {%> 
         checked 
         <% } %>> 
        <label class="label-radio" for="Voiture_IsTrajetSimple">Trajet simple</label> 
       </td> 
      </tr> 
     </table> 
    </div> 
</div> 

<div class="col-md-6 col-sm-6"> 
    <div class="float-right"> 
     <table> 
      <tr> 
       <td class="td-radio"> 
        <input id="Voiture_IsTrajetAR" name="Voiture_TypeTrajet" type="radio" 
         <% var KMVoiture_IsTrajetAR = Model.KMVoiture_IsTrajetAR; 
          if (KMVoiture_IsTrajetAR) 
          {%> 
         checked 
         <% } %>> 
        <label class="label-radio" for="Voiture_IsTrajetAR">Trajet A/R</label> 
       </td> 
      </tr> 
     </table> 
    </div> 
</div> 

+0

您使用的是什麼版本的MVC? –

+0

我不明白是什麼問題? –

+0

MVC 4,問題是,爲什麼它不工作,我做錯了什麼? – Kevorkian

回答

0

奇怪的是,我剛剛通過直接從模型中所獲得的價值,而無需使用一個變量,這樣解決了這一問題:

   <input id="Voiture_IsTrajetSimple" name="Voiture_TypeTrajet" type="radio"                     
        <%if (Model.KMVoiture_IsTrajetSimple) 
         {%> 
        checked 
        <% } %>> 
       <label class="label-radio" for="Voiture_IsTrajetSimple">Trajet simple</label> 

和它的工作:/。

0

試試這個:

<div class="col-md-6 col-sm-6"> 
<div class="col-md-6 col-sm-6"> 
<div class="float-right"> 
    <table> 
     <tr> 
      <td class="td-radio"> 
        <% var KMVoiture_IsTrajetSimple = Model.KMVoiture_IsTrajetSimple; 
         if (KMVoiture_IsTrajetSimple) 
         { %> 
         <input id="Voiture_IsTrajetSimple" name="Voiture_TypeTrajet" type="radio" checked = "checked"/> 
        <% } else { %> 
         <input id="Voiture_IsTrajetSimple" name="Voiture_TypeTrajet" type="radio" /> 
         <% } %> 
       <label class="label-radio" for="Voiture_IsTrajetSimple">Trajet simple</label> 
      </td> 
     </tr> 
    </table> 
</div> 
</div> 

<div class="col-md-6 col-sm-6"> 
<div class="float-right"> 
    <table> 
     <tr> 
      <td class="td-radio"> 
       <% var KMVoiture_IsTrajetAR = Model.KMVoiture_IsTrajetAR; 
        if (KMVoiture_IsTrajetAR) 
        { %>  
         <input id="Voiture_IsTrajetAR" name="Voiture_TypeTrajet" type="radio" checked = "checked"/> 
       <% } else { %> 
         <input id="Voiture_IsTrajetAR" name="Voiture_TypeTrajet" type="radio" /> 
         <% } %> 
       <label class="label-radio" for="Voiture_IsTrajetAR">Trajet A/R</label> 
      </td> 
     </tr> 
    </table> 
</div> 
+0

這一情況下,一切都進入,輸入不會是百! – Kevorkian

+0

它只是在我的最終呈現。控制檯中顯示任何錯誤? –

+0

也沒有工作 – Kevorkian

1

在代碼中所有輸入缺失值屬性,它需要這樣的:

<input id="Voiture_IsTrajetSimple" name="Voiture_TypeTrajet" type="radio" value="TrajetSimple"> 
<input id="Voiture_IsTrajetAR" name="Voiture_TypeTrajet" type="radio" value="TrajetAR"> 

對於這個工作,你的模型具有可以設置爲"TrajetSimple"/"TrajetAR"值的Voiture.TypeTrajet屬性(對於前者充足的字符串或枚舉)。一旦選中任何一個單選按鈕,客戶端值Voiture.TypeTrajet將被設置爲相應的值。

因此,解決辦法可能是:

  1. 您KMVoitureTrajet財產

    public enum TypeTrajetEnum 
    { 
        Simple, 
        AR 
    } 
    
  2. 在模型中創建的所有可能的值枚舉創建KMVoitureTrajet性質(而不是KMVoiture_IsTrajetARKMVoiture_IsTrajetSimple布爾屬性,你目前有)

    public class Model 
    { 
        public TypeTrajetEnum KMVoitureTrajet{get;set;} 
    } 
    
  3. 在視圖中,可以通過使用Html.RadioButtonFor輔助呈現單選按鈕:

    @Html.RadioButtonFor(m => m.KMVoitureTrajet, TypeTrajetEnum.Simple) Trajet simple 
    @Html.RadioButtonFor(m => m.KMVoitureTrajet, TypeTrajetEnum.AR)Trajet A/R 
    
  4. 在返回一個視圖中的控制器的動作由設置,可以預先選擇的值:

    var model = new Model{ 
        KMVoitureTrajet = TypeTrajetEnum.AR 
    }; 
    return View(model); 
    
0

你能用這個嗎?

<input id="Voiture_IsTrajetSimple" name="Voiture_TypeTrajet" 
    type="radio" <%= Model.KMVoiture_IsTrajetSimple ? "checked" : "" %> >