asp.net-mvc-3 – 扩展MVC3剃刀Html.LabelFor添加css类
发布时间:2020-12-15 23:36:09 所属栏目:asp.Net 来源:网络整理
导读:我试图在EditorTemplate上添加一个css类到 Html.LabelFor @Html.LabelFor(model = model.Name,new { @class = "myLabel" }) 我的期望例如:标签应该拿起css类. 为此,我尝试使用以下代码扩展Label,但是我的标签没有显示. 我在这里做错了什么? public static
我试图在EditorTemplate上添加一个css类到
Html.LabelFor
@Html.LabelFor(model => model.Name,new { @class = "myLabel" }) 我的期望例如:标签应该拿起css类. 为此,我尝试使用以下代码扩展Label,但是我的标签没有显示. public static class LabelExtensions { public static MvcHtmlString LabelFor<TModel,TValue>(this HtmlHelper<TModel> html,Expression<Func<TModel,TValue>> expression,object htmlAttributes) { return html.LabelFor(expression,null,htmlAttributes); } public static MvcHtmlString LabelFor<TModel,string labelText,object htmlAttributes) { return html.LabelHelper( ModelMetadata.FromLambdaExpression(expression,html.ViewData),ExpressionHelper.GetExpressionText(expression),HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes),labelText); } private static MvcHtmlString LabelHelper(this HtmlHelper html,ModelMetadata metadata,string htmlFieldName,IDictionary<string,object> htmlAttributes,string labelText = null) { var str = labelText ?? (metadata.DisplayName ?? (metadata.PropertyName ?? htmlFieldName.Split(new[] { '.' }).Last())); if (string.IsNullOrEmpty(str)) return MvcHtmlString.Empty; var tagBuilder = new TagBuilder("label"); tagBuilder.MergeAttributes(htmlAttributes); tagBuilder.Attributes.Add("for",TagBuilder.CreateSanitizedId(html.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName(htmlFieldName))); tagBuilder.SetInnerText(str); return tagBuilder.ToMvcHtmlString(TagRenderMode.Normal); } private static MvcHtmlString ToMvcHtmlString(this TagBuilder tagBuilder,TagRenderMode renderMode) { return new MvcHtmlString(tagBuilder.ToString(renderMode)); } } 如果我没有指定css类,例如@ Html.LabelFor(model => model.Name),那么它显示标签. 解决方法
我怀疑你忘了把您在其中定义的LabelExtensions类的命名空间放在视图中.所以例如如果这个类是在MyProject.Extensions命名空间内定义的:
namespace MyProject.Extensions { public static class LabelExtensions { ... } } 确保您已将此命名空间带入范围: @using MyProject.Extensions @model MyViewModel ... @Html.LabelFor(model => model.Name,new { @class = "myLabel" }) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 涉及 C#的 foreach问题
- asp.net-mvc – 如何成功配置Common.Logging?
- ASP.NET RadioButton混淆名称(组名)
- asp.net-mvc – 如何在MVC中测试ModelMetadata.FromLambdaE
- asp.net-mvc-3 – 通过URL导致控制器的DateTime导致ASP .NE
- asp.net-mvc – 有没有办法让RoutePrefix以可选参数开头?
- asp.net – 更改后没有应用CSS
- asp.net-mvc-4 – 为什么我们需要MVC中的Web API? mvc中re
- .net – <%中的含义是什么:和<%=有什么区别?
- asp.net-mvc – Asp.Net Mvc – Html.TextBox – 设置自动对
推荐文章
站长推荐
热点阅读