加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-2 – 如何在ASP.NET MVC2中为Html.LabelFor()添加“

发布时间:2020-12-15 19:57:01 所属栏目:asp.Net 来源:网络整理
导读:如何在ASP.NET MVC2中为 Html.LabelFor()添加“id”属性? 这是我的标签代码: %=Html.LabelFor(x = x.FirstName)% 这是我失败的尝试: %=Html.LabelFor(x = x.FirstName,new { @id = "first-name" } )% 谢谢. 解决方法 这是一个应该做你需要的帮手: public
如何在ASP.NET MVC2中为 Html.LabelFor()添加“id”属性?

这是我的标签代码:

<%=Html.LabelFor(x => x.FirstName)%>

这是我失败的尝试:

<%=Html.LabelFor(x => x.FirstName,new { @id = "first-name" } )%>

谢谢.

解决方法

这是一个应该做你需要的帮手:
public static MvcHtmlString LabelFor<TModel,TValue>(this HtmlHelper<TModel> html,Expression<Func<TModel,TValue>> expression,string id)
{
    ModelMetadata meta = ModelMetadata.FromLambdaExpression(expression,html.ViewData),string 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.Attributes.Add("for",html.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldId(htmlFieldName));
    tag.MergeAttribute("id",id);
    tag.SetInnerText(labelText);
    return tag.ToMvcHtmlString(TagRenderMode.Normal);
}

来自asp.net mvc源代码中LabelFor帮助器的简单修改.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读