- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个简单的字段表单
<div class="field fade-label">
@Html.LabelFor(model => model.Register.UserName)
@Html.TextBoxFor(model => model.Register.UserName)
</div>
结果是:
<div class="field fade-label">
<label for="Register_UserName">Username (used to identify all services, from 4 to 30 chars)</label>
<input type="text" value="" name="Register.UserName" id="Register_UserName">
</div>
但我想要那个LabelFor
代码附加 <span>
在里面,这样我最终可以得到:
<label for="Register_UserName">
<span>Username (used to identify all services, from 4 to 30 chars)</span>
</label>
我该怎么做?
全部examples使用EditorTemplates
但这是LabelFor
.
最佳答案
您可以通过创建自己的 HTML 帮助器来完成此操作。
http://www.asp.net/mvc/tutorials/creating-custom-html-helpers-cs
您可以通过下载 ASP.Net MVC 源代码来查看 LabelFor<> 的代码,并将其修改为自定义帮助程序。
<小时/>答案由 balexandre 添加
public static class LabelExtensions
{
public static MvcHtmlString LabelFor<TModel, TValue>(this HtmlHelper<TModel> html, Expression<Func<TModel, TValue>> expression, object htmlAttributes)
{
return LabelFor(html, expression, new RouteValueDictionary(htmlAttributes));
}
public static MvcHtmlString LabelFor<TModel, TValue>(this HtmlHelper<TModel> html, Expression<Func<TModel, TValue>> expression, IDictionary<string, object> htmlAttributes)
{
ModelMetadata metadata = ModelMetadata.FromLambdaExpression(expression, html.ViewData);
string htmlFieldName = ExpressionHelper.GetExpressionText(expression);
string labelText = metadata.DisplayName ?? metadata.PropertyName ?? htmlFieldName.Split('.').Last();
if (String.IsNullOrEmpty(labelText))
{
return MvcHtmlString.Empty;
}
TagBuilder tag = new TagBuilder("label");
tag.MergeAttributes(htmlAttributes);
tag.Attributes.Add("for", html.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldId(htmlFieldName));
TagBuilder span = new TagBuilder("span");
span.SetInnerText(labelText);
// assign <span> to <label> inner html
tag.InnerHtml = span.ToString(TagRenderMode.Normal);
return MvcHtmlString.Create(tag.ToString(TagRenderMode.Normal));
}
}
关于asp.net-mvc - 如何覆盖 @Html.LabelFor 模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5196290/
我正在尝试根据集合中的项目数量动态创建标签。 我的模型很好地传递到我的 View ,但是在遍历集合时 - 我无法让标签显示字符串列表的值。 例如我正在使用以下代码: @foreach (var a
有没有办法这样写: @Html.LabelFor(typeof(StackViewModel), "SomeProperty") 我正在生成一个表(但不能使用@Html.TableFor)并想使用@H
我刚刚将我的 MVC3 应用程序升级到 MVC4,但在运行时出现错误。 (修剪后看起来更好) error CS0121: The call is ambiguous between the follo
我正在尝试格式化价格标签,以便价格始终采用 0.00 格式,我看到了一个类似的问题,它使用了与我下面类似的代码。我收到一个 object reference not set to an instanc
我有一个关联了强类型模型的 View " %> SomeViewModel 看起来像这样 class SomeViewModel { public IEnumerable Foos {get;
我想为 HtmlHelper 创建一个扩展方法,它允许我创建一个 LabelFor 属性,如果它是必填字段,则在它后面显示一个星号。我该怎么做? public class Foo { [Req
任何人都知道如何在使用 Html.LabelFor(c=>c.MyField) 时指定文本。只是 MyField 可能不适合在屏幕上显示,您可能需要“The Super Fantastic Field
我有这个代码: @Html.LabelFor(model => model.Ticket) @Html.EditorFor(model => model.Ticket)
我有一些代码 @Html.LabelFor(m => m.MiddleName, new { @class = "col-md-3 control-label" })
我想要打印模型的成员名称/显示名称的功能。这类似于使用 HtmlHelper.LabelFor但将文本不 包裹在 label 中. MVC 中是否已经内置了用于此确切目的的扩展方法?我找不到所以我看了
我是 MVC 4 的新手,我想做的是,制作一个显示增量整数的标签 在cshtml页面 @Html.LabelFor(m => m.Increment, Model.Increment) 在 Contr
我有以下代码: @Html.EditorFor(model => model.Title, new { htmlAttributes = new { @class = "form-control" }
在我看来,我使用 html 助手 LabelFor。标签文本有时太长,所以我为标签设置了max-width。现在它看起来像这样: Label for some fi... 而全文是Label for
我在 mvc 中有两个元素。 在其中一个中我使用了这段代码: @Html.LabelFor(model => model.Subject, new { @class = "control-label
我正在使用 MVC2,预览版 2。为什么当我使用时: x.Nombres) %> 输出: Nombre: Sr. Fulano de Tal 但是当我使用时:
我在我的元素中使用 purecss.io,但在尝试将标签样式应用于 LabelFor 元素时遇到问题。我知道它不带任何 html 属性,但如果不将所有字母压在一起,我无法让它在包装时采用样式。 我已经
我需要更改 id我模型的属性,所以我分配一个新的 id在方法中 TextBoxFor来自 HTML helper .但这显然没有改变id。在for使用方法时的属性 LabelFor来自 HTML he
C#、MVC 5 Razor 、jQuery 2.1.1 如果这是重复的,请指出正确的方向,因为我找不到它。 代码: @Html.LabelFor(model => model.BillState,
Label 对象的 labelFor 字段的具体用途是什么? 昨天是我第一次听说 JavaFX 的事情,如果这听起来很愚蠢,我深表歉意。 Label 这个词在 HTML 节点中对我来说似乎很熟悉。出于
当我使用 asp.net mvc 3 脚手架制作列表时。我有一个包含表格的 View 。该表的标题在 View 中进行了硬编码。我想使用 LabelFor,所以我得到了我需要的 l10n。 我尝试做的
我是一名优秀的程序员,十分优秀!