html.labelfor 添加css,asp.net mvc 3 - Extend MVC3 razor Html.LabelFor to add css class - Stack Overflo...

I am trying to add a css class to Html.LabelFor on an EditorTemplate

@Html.LabelFor(model => model.Name, new { @class = "myLabel" })

my expectation for instance:label should pick up the css class.

For this I tried to extend Label with the following code ,but my label is not showing up .

What am I doing wrong here ?

public static class LabelExtensions

{

public static MvcHtmlString LabelFor(this HtmlHelper html, Expression> expression, object htmlAttributes)

{

return html.LabelFor(expression, null, htmlAttributes);

}

public static MvcHtmlString LabelFor(this HtmlHelper html, Expression> expression, 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 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));

}

}

If I am not specifying css class for example @Html.LabelFor(model => model.Name) ,then it shows the label.

But I am not able to apply css to my label.

I want to show the label in blue color, when the page loads.,then to change the label style based on user action using jquey.All is fine,on my page except the fact that I am unable to extend and add a css class to my label.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值