下面將允許覆蓋默認的顯示名稱,替代使用下面是使用[DisplayName]
屬性
使用
<%= Html.LabelFor(m => m.Customer.Name.Forename, "First Name")%>
代碼
,毀壞你的模型
namespace System.Web.Mvc.Html
{
public static class LabelExtensions
{
public static MvcHtmlString LabelFor<TModel, TValue>(this HtmlHelper<TModel> html, Expression<Func<TModel, TValue>> expression, string displayName)
{
return LabelHelper(html, ModelMetadata.FromLambdaExpression<TModel, TValue>(expression, html.ViewData), ExpressionHelper.GetExpressionText(expression), displayName);
}
internal static MvcHtmlString LabelHelper(HtmlHelper html, ModelMetadata metadata, string htmlFieldName, string displayName)
{
string str = displayName ?? metadata.DisplayName ?? (metadata.PropertyName ?? htmlFieldName.Split(new char[] { '.' }).Last<string>());
if (string.IsNullOrEmpty(str))
{
return MvcHtmlString.Empty;
}
TagBuilder builder = new TagBuilder("label");
builder.Attributes.Add("for", html.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldId(htmlFieldName));
builder.SetInnerText(str);
return MvcHtmlString.Create(builder.ToString(TagRenderMode.Normal));
}
}
}
欣賞代碼s nippet =) – afreeland 2013-10-10 14:43:11
「使用[DisplayName]屬性破壞你的模型」 - 大聲笑 – Alex 2014-11-06 08:39:18
@亞瑟哦,是的,這是一個可怕的想法,我認識的好工作4年半後。 – 2014-11-26 20:29:19