2016-01-22 92 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" : "" %> >