asp.net-mvc-3 – 扩展MVC3剃刀Html.LabelFor添加css类
发布时间:2020-05-25 17:11:15 所属栏目:asp.Net 来源:互联网
导读:我试图在EditorTemplate上添加一个css类到 Html.LabelFor @Html.LabelFor(model = model.Name, new { @class = myLabel }) 我的期望例如:标签应该拿起css类. 为此,我尝试使用以下代码扩展Label,但是我的标签没有显示. 我在这里做错了什么? public static cl
|
我试图在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" }) (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 为什么HttpContext.Current.User.Identity.Name
- 即使ReadOnly设置为false,ASP.NET GridView中的CheckBoxFie
- asp.net-mvc – 路由在Asp.net Mvc 4和Web Api
- asp.net – 模型绑定与禁用文本框
- asp.net – 如何在Azure网站上设置machineKey
- asp.net-mvc – 在ASP.Net MVC 2中为非归因模型验证提供本地
- ASP.NET MVC3中的HTML反而不是JSON的IIS响应
- asp.net – Page.IsValid如何工作?
- 文件上传 – 以经典的asp上传文件
- asp.net-mvc – 子文件夹中的控制器
推荐文章
站长推荐
- asp.net-mvc-3 – MVC 3子域路由
- asp.net – 您有任何免费的.Net托管代码将DocX转
- asp.net – 可以将值或参数传递到用户控件?
- asp.net-mvc – 如何在ASP.NET MVC控制器中设置十
- asp.net – 直接将.aspx转换为.pdf [已关闭]
- asp.net – Html.BeginForm()类型的扩展名
- asp.net-mvc-4 – Durandal.js:更改每个区域的导
- 在asp.net mvc上传文件代码后,通过服务器获
- asp.net – Umbraco CMS(.NET):加载xslt /用户控
- asp.net – 从DropDownList中删除列表项
热点阅读
