可以将HTML title
属性添加到输入标记中,如下所示:
@Html.TextBoxFor(model => model.Name, new { title = "Customer name" })
静态文本是否有类似的帮助?使用@Html.DisplayFor(model => model.Name)
,我可以从模型属性渲染文本。如何添加HTML属性,以便我得到如下所示的span
标记:
<span title="Customer name">ABC</span>
答案 0 :(得分:41)
自定义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());
}
=&GT;
@Html.SpanFor(model => model.Name, new { title = "Customer name" })
答案 1 :(得分:3)
<span title="Customer name">@Model.Name</span>
答案 2 :(得分:2)
如果您使用的是@ HTML.DisplayFor(model =&gt; model.CustomerName)它将呈现为文本,它不会在值中显示任何标记。
如果你想绑定&#34; DisplayFor&#34;使用span,使用以下标记,
<span id="CustomerName">@Html.DisplayFor(model=>model.CustomerName)</span>
答案 3 :(得分:0)
丑陋,但;;-)(必填字段,未呈现.EditorFor内容在提交过程中丢失,甚至HTML注释也不起作用,已在 System.Web.Mvc 5.0.0.0上进行了测试)
<b style="display:none">@Html.EditorFor(model => model.UserName)</b>
<input name="UserName" disabled readonly value=@Html.DisplayTextFor(model => model.UserName)>
原始图片如下:
<input class="text-box single-line" data-val="true" data-val-required="The User Name field is required." id="UserName" name="UserName" type="text" value="Hate Razor !">
答案 4 :(得分:-1)
您使用以下
<span title="Customer name">@Html.DisplayTextFor(m => m.CustomerName)</span>