RadioButtonFor和标签

时间:2014-12-08 15:31:25

标签: c# asp.net-mvc asp.net-mvc-4

我在我的网络项目中使用RadioButtonFor,但是如果用户选择单选按钮的文本,我想使用标签来选择项目,但是生成的html给了我多个同样的#id' s因为Radiobuton而且我想改变它以便拥有清晰的html并使用jquery选择器而没有麻烦(具有唯一ID):

CSHTML

@foreach (var item in Model.audit.natureSelect)
{
    <label>
        @Html.RadioButtonFor(m => m.audit.nature, item.Id, new { Value = item.Id }) @item.NatAudit
    </label>
}

HTML

<div class="col-md-10">
    <label><input id="audit_type" name="audit.type" type="radio" value="1">item 1</label> 
    <label><input id="audit_type" name="audit.type" type="radio" value="2">item 2</label> 
    <label><input id="audit_type" name="audit.type" type="radio"value="3">item 3</label>
</div>

感谢帮我把它弄干净

1 个答案:

答案 0 :(得分:5)

您没有正确使用RadioButtonFor帮助程序。您需要的是所有单选按钮都有一个名称,但不同的ID。而且,请按照以下方式进行操作:

@foreach (var item in Model.audit.natureSelect)
{
    <label>
        @Html.RadioButtonFor(m => m.audit.nature, item.Id, new { id = item.Id }) @item.NatAudit
    </label>
}

顺便说一句,在命名属性和方法时遵循C#命名约定。 C#中的属性名称应以大写字母开头。