重载Html.LabelFor的简单方法是添加'后缀'?

Kma*_*man 5 asp.net-mvc-4

我想为html.labelfor添加一个扩展名,以便我可以使用类似的东西:

@Html.LabelFor(m=>m.Description, ":")
Run Code Online (Sandbox Code Playgroud)

哪个会在呈现的HTML中添加分号作为后缀:

描述:

Ant*_*t P 14

你可以这样做:

@Html.LabelFor(m => m.Description,
               string.Format("{0}:", Html.DisplayNameFor(m => m.Description)))
Run Code Online (Sandbox Code Playgroud)

DisplayNameFor只提供没有标签标记的属性的显示名称,因此您可以将其作为labelText参数的一部分使用,LabelFor并根据需要对其进行格式化.这样您仍然可以获得动态生成的标签文本的好处.

轻松地包裹在自己的帮手中:

public static MvcHtmlString LabelWithColonFor<TModel, TValue>(
              this HtmlHelper<TModel> helper,
              Expression<Func<TModel, TValue>> expression)
{
    return helper.LabelFor(expression, string.Format("{0}:",
                                              helper.DisplayNameFor(expression)));
}
Run Code Online (Sandbox Code Playgroud)

然后:

@Html.LabelWithColonFor(m => m.Description)
Run Code Online (Sandbox Code Playgroud)