首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用ASP.NET MVC3帮助器呈现带有标题属性的跨度标签

使用ASP.NET MVC3帮助器呈现带有标题属性的跨度标签
EN

Stack Overflow用户
提问于 2011-05-14 19:07:10
回答 4查看 28.9K关注 0票数 23

可以将HTML属性添加到title标记中,如下所示:

代码语言:javascript
复制
@Html.TextBoxFor(model => model.Name, new { title = "Customer name" })

有没有类似的静态文本助手?使用@Html.DisplayFor(model => model.Name),我可以从模型属性中呈现文本。如何添加超文本标记语言属性,以便获得如下所示的span标记:

代码语言:javascript
复制
<span title="Customer name">ABC</span>
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-05-14 20:08:24

自定义html helper可能是最好的解决方案。

代码语言:javascript
复制
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());
}

=>

代码语言:javascript
复制
@Html.SpanFor(model => model.Name, new { title = "Customer name" })
票数 45
EN

Stack Overflow用户

发布于 2011-05-14 19:49:43

代码语言:javascript
复制
<span title="Customer name">@Model.Name</span>
票数 5
EN

Stack Overflow用户

发布于 2017-02-24 18:30:14

如果您使用@HTML.DisplayFor(model=>model.CustomerName),它将呈现为文本,它不会在值中显示任何标记。

如果你想使用span绑定"DisplayFor“,使用下面的标签,

代码语言:javascript
复制
<span id="CustomerName">@Html.DisplayFor(model=>model.CustomerName)</span>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6001411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档