RadioButtonFor和标签

cle*_*ent 1 c# asp.net-mvc asp.net-mvc-4

我正在RadioButtonFor我的网络项目中使用,但我想使用标签,以便在用户选择单选按钮的文本时选择项目,但由于Radiobuton而我生成的html为我提供了多个相同的#id要改变它,以便有明确的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>
}
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

感谢帮我把它弄干净

ata*_*ati 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>
}
Run Code Online (Sandbox Code Playgroud)

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