Подтвердить что ты не робот

Render span tag с атрибутом title с помощниками ASP.NET MVC 3

Можно добавить атрибут HTML title к входному тегу, например:

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

Есть ли аналогичный помощник для статического текста? С помощью @Html.DisplayFor(model => model.Name) я могу отобразить текст из свойства модели. Как добавить атрибуты HTML, чтобы получить тег span, который выглядит следующим образом:

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

Ответ 1

Пользовательский 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" })

Ответ 2

<span title="Customer name">@Model.Name</span>

Ответ 3

Если вы используете @HTML.DisplayFor(model = > model.CustomerName), он будет отображаться как текст, он не будет показывать ни одного тега внутри значений.

Если вы хотите связать "DisplayFor" с использованием диапазона, используйте тег ниже,

<span id="CustomerName">@Html.DisplayFor(model=>model.CustomerName)</span>

Ответ 4

Вы используете нижеследующее @Html.DisplayTextFor(m = > m.CustomerName)