我正在使用Html.RadioButtonFor
,想知道什么是使用它的最佳实践。例如,以下是两种方法,其中Option-1给了我想要的结果。我只是DeliveryFeeType
在模型中声明并使用Label
overthere。
选项1:
.ASPX
<div id="delivery-fee-config" >
<div>
<%= Html.LabelFor(m => m.DeliveryFeeType) %>
</div>
<div>
<%= Html.RadioButtonFor(m => m.DeliveryFeeType, "All") %>
<%= Html.Label("All") %>
</div>
<div>
<%= Html.RadioButtonFor(m => m.DeliveryFeeType, "Flat Fee") %>
<%= Html.Label("Flat Fee") %>
</div>
<div>
<%= Html.LabelFor(m => m.FlatFeeAmount) %>
<%= Html.TextBoxFor(m => m.FlatFeeAmount, new {maxlength="5"}) %>
</div>
</div>
模型:
[DisplayName("Select Delivery Fee Type")]
public string DeliveryFeeType { get; set; }
现在,在这里我要使用LabelFor
在中声明属性的位置model
。我不喜欢的是,All
并且FlatFee
在调试时总是错误的。看来我只是用它们在UI上显示标签。我可以制作它们true
还是false
根据radio button
选择?如果是,我该怎么做?
选项-2:
.ASPX
<div id="delivery-fee-config" >
<div>
<%= Html.LabelFor(m => m.DeliveryFeeType) %>
</div>
<div>
<%= Html.RadioButtonFor(m => m.DeliveryFeeType, "All") %>
<%= Html.LabelFor(m => m.All) %>
</div>
<div>
<%= Html.RadioButtonFor(m => m.DeliveryFeeType, "Flat Fee") %>
<%= Html.LabelFor(m => m.FlatFee) %>
</div>
<div>
<%= Html.LabelFor(m => m.FlatFeeAmount) %>
<%= Html.TextBoxFor(m => m.FlatFeeAmount, new {maxlength="5"}) %>
</div>
</div>
模型:
[DisplayName("Select Delivery Fee Type")]
public string DeliveryFeeType { get; set; }
[DisplayName("All")]
public bool All { get; set; }
[DisplayName("Flat Fee")]
public bool FlatFee { get; set; }
要关联<label>
元素,您可以将表单控件包装在中<label>
,也可以使用for
属性将其与id
控件的属性关联。
该RadioButtonFor()
方法的问题在于它会生成重复的id
属性,这些属性是无效的html,因此您应该删除它(如果用包裹<label>
)或显式设置它。
选项1
<label>
<%= Html.RadioButtonFor(m => m.DeliveryFeeType, "All", new { id = "" }) %>
<span>All</span>
</label>
<label>
<%= Html.RadioButtonFor(m => m.DeliveryFeeType, "Flat Fee", new { id = "" }) %>
<span>Flat Fee</span>
</label>
选项2
<%= Html.RadioButtonFor(m => m.DeliveryFeeType, "All", new { id = "all" }) %>
<%= Html.Label("All", new { @for = "all" }) %>
<%= Html.RadioButtonFor(m => m.DeliveryFeeType, "All", new { id = "flatfee" }) %>
<%= Html.Label("Flat Fee", new { @for = "flatfee" }) %>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句