扩展 MVC3 razor Html.LabelFor 添加 css 类

2024-01-19

我正在尝试将 css 类添加到 EditorTemplate 上的 Html.LabelFor

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

我的期望例如:label 应该选择 css 类。

为此,我尝试使用以下代码扩展标签,但我的标签没有显示。 我在这里做错了什么?

 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, TValue>(this HtmlHelper<TModel> html, Expression<Func<TModel, TValue>> 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<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),然后显示标签。 但我无法将 css 应用到我的标签。 我想在页面加载时以蓝色显示标签。然后使用 jquey 根据用户操作更改标签样式。在我的页面上一切都很好,除了我无法扩展和添加 css 类到我的标签。


我怀疑您忘记将定义此 LabelExtensions 类的命名空间带入视图的范围内。例如,如果这个类是在MyProject.Extensions命名空间:

namespace MyProject.Extensions
{
    public static class LabelExtensions
    {
        ...
    }
}

确保您已将此命名空间纳入范围:

@using MyProject.Extensions
@model MyViewModel
...
@Html.LabelFor(model => model.Name, new { @class = "myLabel" })
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

扩展 MVC3 razor Html.LabelFor 添加 css 类 的相关文章

  • 使用 Linq 返回具有最大计数的列表

    使用 C 和 Linq 如何返回具有最大大小 计数的 List 我假设您有一个名为的列表集合lists并且您想要返回此集合中元素最多的列表 如果是这样 请尝试以下操作 var listWithLargestCount lists Order
  • asp.net mvc - Ajax 刷新视图的每个元素

    希望在退出 jquery 对话框后使用 ajax 刷新当前页面 我有一个包含 foreach 循环的视图 数据是从模型中提取的 每个循环有 2 个编辑 删除按钮 当我单击 编辑按钮 时 将打开一个 jquery UI 对话框进行编辑 当我保
  • 如何将jquery.post中的数据发送到使用ViewModel作为参数的mvc控制器?

    我正在使用 ASP NET MVC 编写应用程序 我有带有操作的控制器 它使用一些 ViewModel 作为参数 如何使用 jquery post 将表单数据发送到该 mvc 控制器 post Yourcontroller YourActi
  • 将数组从 javascript 传递到控制器 MVC 4

    我正在使用剃刀 但很难将数组传递给控制器 该数组包含我制作的对象 我正在尝试执行此操作 ajax type POST url HomePage HandleOperations data JSON stringify operationCo
  • ASP.NET MVC 3 Razor DisplayFor 委托

    我收到此错误 模板只能与字段访问 属性访问 一维数组索引或单参数自定义索引器表达式一起使用 这是我的代码 自定义 HTML 帮助程序 包装 DisplayFor 以便我可以选择模板 public static string DisplayL
  • 用于 mvc3 日期格式和日期验证的文本框

    我决定开始使用 MVC 3 并且在尝试将我的一个 Web 应用程序重做为 MVC3 时遇到了这个问题 我的项目是这样设置的 public class Project public int ProjectID get set Required
  • ViewModel 的列表在操作中为 null

    我正在开发我的第一个 ASP NET MVC 3 应用程序 我有一个如下所示的视图 model IceCream ViewModels Note NotesViewModel using Html BeginForm Html Valida
  • 关于JSON和序列化的问题

    我的视图模型有一个强类型视图 其中包含一个对象 Person 和一个技能列表 人是很直率的 我像这样使用 Html Helpers Html TextBoxFor m gt m Person FirstName 我提交表格并得到我想要的 问
  • MVC 3 DropDownFor 和 ViewModel 不起作用

    我有 2 个型号 public class Person public Guid ID get set public string Name get set public class Event public Guid ID get set
  • 当checked属性为false时,单选按钮默认被选中?

    我正在尝试生成单选按钮 有条件地检查检查的属性 如果该值存在于数据库中 则应选择它 否则检查的属性为 false 所以最初数据库中没有行 所有单选按钮的检查属性也为 false 但仍然在 UI 上选择 请参见下图 所以不知道这是默认行为还是
  • 从匿名类型获取值

    我有一个方法如下 public void MyMethod object obj implement 我这样称呼它 MyMethod new myparam waoww 那么我该如何实施MyMethod 获取 myparam 值 Edit
  • SQLite CreateDatabase 不支持错误

    我将 Entity Framework 4 2 CF 与 SQLite 一起使用 但是当我尝试启动该应用程序时 出现 提供商不支持 CreateDatabase 错误 这是我的模型映射 protected override void OnM
  • 如何使用 Error.cshtml 视图中的过滤器放入 ViewBag 的数据?

    我有一个操作过滤器 负责将一些通用信息放入 ViewBag 中 供共享 Layout cshtml 文件中的所有视图使用 public class ProductInfoFilterAttribute ActionFilterAttribu
  • 如何使用C#在asp.net中下载xml文件

    我正在使用网络应用程序ASP NET 与 MVC3 我是 mvc3 的新手 我的网页上有一个下载按钮 当我要单击下载按钮时 我希望能够打开该 XML 文件 我尝试过一些代码更改动作结果但我没有打开文件 通过使用下面提到的代码 我收到一个下载
  • 限制C#中的并行线程数

    我正在编写一个 C 程序来生成并通过 FTP 上传 50 万个文件 我想并行处理4个文件 因为机器有4个核心 文件生成需要更长的时间 是否可以将以下 Powershell 示例转换为 C 或者是否有更好的框架 例如 C 中的 Actor 框
  • 复杂对象MVC3的JSON序列化

    我有一个问题 我似乎不知道如何序列化类型的对象 public class SchedulingCalendarMonth public List
  • 如何在清除排序描述后删除wpf网格排序箭头

    我单击网格标题对列进行排序 然后单击 重置 按钮以通过其集合视图清除排序描述 但排序箭头图标仍然保留在标题中 如何去除它 我在尝试弄清楚如何完全清除网格中的排序时遇到了这个问题 感谢 krishnaaditya 回答如何清除标题中的排序箭头
  • Asp.Net MVC3 Razor - 子项目列表未从编辑器发回

    我正在尝试在 MVC3 中创建一个多级编辑器 我所说的多级是指我希望能够编辑三个层次结构级别的数据 父对象 父对象的子对象和子子对象的集合 我的模型大致如下 namespace MvcApplication1 Models public c
  • 使用 NAudio c# 将 wma 音频流转换为 mp3 流

    我的任务是使用 NAudio 和 Lame 将 wma 音频流转换为 mp3 流 下面的代码可以很好地处理文件名 但我希望它可以使用内存流来完成 我在 NAudio 中搜索没有读取 wma 音频流的方法 NAudio 可以吗 public
  • 一个模型可以通过多个编辑器模板传递吗?

    我尝试使用编辑器模板显示视图模型 该模板在应用基本对象编辑器模板之前将模型包装在字段集中 My view model Mvc3VanillaApplication Models ContactModel using Html BeginFo

随机推荐

  • 在 django 迁移期间处理数据?

    class Material models Model name models CharField max length 50 blank False short name models CharField max length 2 bla
  • C++ lambda 表达式的生命周期是多长?

    我读过了C 中 lambda 派生的隐式函子的生命周期是多少 https stackoverflow com questions 5207467 what is lifetime of lambda derived implicit fun
  • 在运行时从自定义 UITypeEditor 内部将自定义 TypeConverter 插入到属性上

    我创建了一个自定义 UITypeEditor 我是否可以插入一个属性 该属性也将 TypeConverter 附加到我的属性insideUITypeEditor 类 我已经尝试过以下操作 但无论我如何扭转和转动它 都没有任何反应 Attri
  • conda“源停用”产生错误:参数太多

    我正在尝试通过以下方式测试创建虚拟环境conda create这是我第一次真正涉足虚拟环境 所以我仍在思考如何使用它们 我的第一个测试是 conda create p users me anaconda envs envtest sourc
  • Lodash中的transform和reduce有什么区别

    除了声明 转换是减少的更强大的替代方案 之外 我找不到任何有关差异的文档 lodash中的transform和reduce有什么区别 除了慢 25 http jsperf com transform vs reduce 我喜欢在引入实用程序
  • 强制保存所有浏览器中的文件 - 不在浏览器窗口中打开

    我正在寻找一个适用于所有浏览器的简单解决方案 对于特定文件类型或通过类的目标链接 如何让它们在所有主要浏览器中简单地强制下载 我想我找到了 apache 服务器的完美解决方案 通过将其添加到 htaccess 中 http css tric
  • Python 加载 UTF-8 JSON

    我有以下 JSON 为简单起见 我只使用一个 但实际上有 100 个条目 Active false Book US Derivat London Mike bersax Michael Jealous ExpirationDate 2006
  • 从 Eclipse 工作区 .metadata 签入什么内容

    我一直在对工作区下的项目进行版本控制 但我从未想过应该检查工作区配置本身 到目前为止 我知道我对永远的浮肿完全没有兴趣 log文件 所以我绝对不会签入它 但是 我可以丢弃其他其他子目录或文件吗 应该 lock 尺寸0 被检查了吗 关于 pl
  • 如何使用dockerfile在容器运行时运行.sh文件

    我正在制作一个 dockerfile 来安装 elasticsearch 6 5 4 并向所需位置添加一些文件 并运行名为 test sh 的脚本以在 elasticsearch 运行时在 elasticsearch 中创建新索引 我不确定
  • 如何调试此错误:CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER?

    我的应用程序中出现错误 我不知道如何解决 以前有人见过这个错误 Binary Image Name Address Symbol 0 RepZio 0x002bd302 testflight backtrace 1 RepZio 0x002
  • C# using 语句位于代码页顶部

    几乎所有 C 文件都有using页面顶部的声明 i e using System using System IO code 做什么的using声明意味着位于页面顶部 为什么语法与其他的不同using声明声明 i e using Resour
  • 如何使用硒滚动页面

    我正在使用 FirefoxDriver 网络驱动程序 Firefox 窗口中加载的页面是一个大页面 我想使用 selenium 滚动该页面 我想知道如何做到这一点 如果你想使用selenium webdriver在firefox窗口上滚动
  • 强制QWebView在单独的线程中下载网页内容?

    我如何强制 QWebView 在单独的线程中下载网页和相关内容 你不能轻易 您可以实现自己的 QNetworkAccessManager 请参阅 createRequest 将工作卸载到另一个线程中的 QNetworkAccessManag
  • Angular 6 + Popper.js(无 jQuery)

    我正在尝试设置 Popper js 以使用 Angular 5 无需 bootstrap 或 jquery 我尝试按照这个https github com FezVrasta popper js react vuejs angular an
  • Xcode 4 Cmd+alt+上/下重新映射

    我意识到头文件和实现文件之间的切换已移至 ctrl cmd up down 然而 这非常烦人 因为在我可以用一只手的 3 个手指快速完成之前 箭头键附近没有 Ctrl 按钮 所以我打开首选项发现我可以更改键绑定并尝试按 cmd alt 上
  • 什么时候适合使用引用变量?为什么?您能解释一下实际的语法和位置吗? [复制]

    这个问题在这里已经有答案了 我是 C 的新手 我们最近开始在课堂上探索参考变量 我对它们感到非常困惑 不一定是如何做它们 因为我知道它们会切换变量值 但更多的是沿着为什么开发人员想要做这样的事情 他们完成了什么 它们节省内存吗 他们是否避免
  • 如何在从 v$sql 接收到的 Oracle 查询中查找参数?

    我使用查询 select LAST LOAD TIME ELAPSED TIME MODULE SQL TEXT elasped from v sql WHERE MODULE JDBC Thin Client ORDER BY LAST
  • 将十进制小时转换为小时、分钟和秒

    xslt 1 0 中是否有更优雅的解决方案 我知道 xslt 2 0 有内置函数 我正在获取一个以十进制小时表示的数字 需要将其表示为 HH MM SS 目前我有以下功能正常的
  • 如何使用 VB6 的 Web 服务?

    我需要从 VB6 程序使用外部 Web 服务 如果可能的话 我希望能够在没有 SOAP 工具包的情况下部署我的程序 但这不是必需的 我没有网络服务源 也没有创建它 这是供应商提供的服务 那么 除了 SOAP 工具包之外 使用 VB6 的 W
  • 扩展 MVC3 razor Html.LabelFor 添加 css 类

    我正在尝试将 css 类添加到 EditorTemplate 上的 Html LabelFor Html LabelFor model gt model Name new class myLabel 我的期望例如 label 应该选择 cs