如何在MVC3中创建包含HTML内容的强类型标签?
<label for="nnn"><input type="checkbox" id="nnn" />Herp</label>
我已经检查了w3c验证器中的代码,它似乎是有效的,有没有办法做到这一点?
感谢。
答案 0 :(得分:2)
您可以使用TagBuilder
的自定义HTML帮助程序。
像这样(未经测试);
public static MvcHtmlString LabelCheckBoxFor<TModel>(
this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel,bool>> expression,
string text)
{
var labelTag = new TagBuilder("label");
labelTag.MergeAttribute("for", "nnn");
labelTag.InnerHtml = htmlHelper.CheckBoxFor(expression) + text;
return labelTag.ToString(TagRenderMode.SelfClosing);
}
可能不是100%,但你明白了。我不确定如何从模型中提取“for”值。您可能需要FromLambdaExpression
或其他参数。
并像这样使用它:
@Html.LabelCheckBoxFor(model => model.SomeField, "Herp")