Asp.net

使用 ASP.NET MVC 3 Helpers 渲染具有標題屬性的 span 標籤

  • May 14, 2011

title可以像這樣向輸入標籤添加 HTML屬性:

@Html.TextBoxFor(model => model.Name, new { title = "Customer name" })

靜態文本是否有類似的助手?我可以從@Html.DisplayFor(model => model.Name)模型屬性中渲染文本。如何添加 HTML 屬性,以便獲得span如下呈現的標籤:

<span title="Customer name">ABC</span>

自定義 html 助手可能是最巧妙的解決方案。

public static MvcHtmlString SpanFor<TModel, TProperty>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TProperty>> expression, object htmlAttributes = null)
{
   var valueGetter = expression.Compile();
   var value = valueGetter(helper.ViewData.Model);

   var span = new TagBuilder("span");
   span.MergeAttributes(new RouteValueDictionary(htmlAttributes));
   if (value != null)
   {
       span.SetInnerText(value.ToString());
   }

   return MvcHtmlString.Create(span.ToString());
}

=>

@Html.SpanFor(model => model.Name, new { title = "Customer name" })

引用自:https://stackoverflow.com/questions/6001411