RadioButton&检查属性

时间:2016-01-22 11:03:53

标签: c# html asp.net-mvc

未应用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>

4 个答案:

答案 0 :(得分:1)

在您的代码中,所有输入都缺少值属性,它需要类似于:

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

为此,模型必须具有Voiture.TypeTrajet属性,其类型可以设置为"TrajetSimple"/"TrajetAR"值(例如字符串或枚举)。一旦检查了任何单选按钮,客户端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);
    

答案 1 :(得分: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>

答案 2 :(得分:0)

你能用吗?

$sPattern = '/^[-@\w[:space:]]+$/';

答案 3 :(得分: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>

它起作用了:/。