说我有:
@Html.RadioButtonFor(modelItem => item.CheckerApproved, true)
@Html.LabelFor(modelItem => item.CheckerApproved, "Accepted")
@Html.RadioButtonFor(modelItem => item.CheckerApproved, false)
@Html.LabelFor(modelItem => item.CheckerApproved, "Rejected")
当我查看页面源代码时,我有类似的内容:
<input id="item_CheckerApproved" name="item.CheckerApproved" type="radio" value="True" />
<label for="item_CheckerApproved">Approved</label>
<input checked="checked" id="item_CheckerApproved" name="item.CheckerApproved" title="" type="radio" value="False" />
<label for="item_CheckerApproved">Rejected</label>
与第一个输入相关联的标签。
输入似乎具有相同的ID。这不好吗?如何绕过它?
答案 0 :(得分:1)
for
属性将设置为LabelFor
谓词中提供的任何内容。
这不应该是一个复选框而不是两个单选按钮吗?
E.g:
@Html.CheckBoxFor(model => model.CheckerApproved)
@Html.LabelFor(model => model.CheckerApproved)
是的 - 拥有重复的ID是不好的。它不符合XHTML标准。
特别是如果您开始使用客户端脚本,您的选择器将出现问题:
$('#item_CheckerApproved'); // which checkbox will this retrieve?
答案 1 :(得分:1)
您可以通过为每个单选按钮指定ID来解决此限制,如下所示,然后只需使用Html.Label并指定单选按钮的ID即可将其链接。
<%= Html.RadioButtonFor(model => model.CheckerApproved, true, new { id = "Approved" })%>
<%: Html.Label("Approved")%>
<%= Html.RadioButtonFor(model => model.CheckerApproved, false, new { id = "Rejected" })%>
<%: Html.Label("Rejected")%>