我有这样的事情:
@Html.CheckBoxFor(model=>...)
<label>
@Html.DisplayFor(model=>...)
</label>
@Html.HiddenFor(model=>...)
但浏览器的最终结果是: 1)元素 2)隐藏的领域 3)标签
我需要解决这个问题,因为我使用的库需要标签紧跟在Checkbox之后。
答案 0 :(得分:1)
为什么要围绕<label>
包裹DisplayFor
?只需使用@Html.LabelFor
。
此外。如果您使用@Html.CheckBox..
助手,他们将在复选框后呈现隐藏字段。这有一个很好的理由,但需要一个冗长的例子。
你可能想要的是一个编辑器模板。这应该让你开始:
@model Boolean
<input type="checkbox"
id="@ViewData.TemplateInfo.GetFullHtmlFieldId("")"
name="@ViewData.TemplateInfo.GetFullHtmlFieldName("")" />
上面代码的文件名为“MyCheckbox”,位于Views/Shared/EditorTemplates
型号:
[UIHint("MyCheckbox")]
public bool MyProp { get; set; }
查看:
@Html.EditorFor(x=> x.MyProp)
@Html.LabelFor(x=> x.MyProp)
输出:
<input type="checkbox" id="MyProp" name="MyProp">
<label for="MyProp">MyProp</label>