单选按钮和选中的属性
问题描述:
未应用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>
答
奇怪的是,我刚刚通过直接从模型中所获得的价值,而无需使用一个变量,这样解决了这一问题:
<input id="Voiture_IsTrajetSimple" name="Voiture_TypeTrajet" type="radio"
<%if (Model.KMVoiture_IsTrajetSimple)
{%>
checked
<% } %>>
<label class="label-radio" for="Voiture_IsTrajetSimple">Trajet simple</label>
和它的工作:/。
答
试试这个:
<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>
答
在代码中所有输入缺失值属性,它需要这样的:
<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
将被设置为相应的值。
因此,解决办法可能是:
-
您KMVoitureTrajet财产
public enum TypeTrajetEnum { Simple, AR }
-
在模型中创建的所有可能的值枚举创建
KMVoitureTrajet
性质(而不是KMVoiture_IsTrajetAR
和KMVoiture_IsTrajetSimple
布尔属性,你目前有)public class Model { public TypeTrajetEnum KMVoitureTrajet{get;set;} }
-
在视图中,可以通过使用Html.RadioButtonFor辅助呈现单选按钮:
@Html.RadioButtonFor(m => m.KMVoitureTrajet, TypeTrajetEnum.Simple) Trajet simple @Html.RadioButtonFor(m => m.KMVoitureTrajet, TypeTrajetEnum.AR)Trajet A/R
-
在返回一个视图中的控制器的动作由设置,可以预先选择的值:
var model = new Model{ KMVoitureTrajet = TypeTrajetEnum.AR }; return View(model);
答
你能用这个吗?
<input id="Voiture_IsTrajetSimple" name="Voiture_TypeTrajet"
type="radio" <%= Model.KMVoiture_IsTrajetSimple ? "checked" : "" %> >
您使用的是什么版本的MVC? –
我不明白是什么问题? –
MVC 4,问题是,为什么它不工作,我做错了什么? – Kevorkian