继承自 HtmlHelper 而不是扩展它

2023-12-20

我正在创建一组用于渲染兼容的助手推特引导程序 http://twitter.github.com/bootstraphtml。在我看来,当谈到如何将这些方法组合在一起时,我有两种选择:

  • 扩展 HtmlHelper,在方法中添加 TB 前缀
  • 创建一个新类TBootHelper其中包含方法

在第二种情况下,要得到TBoot可用的助手,开发人员会添加

<pages pageBaseType="Twitter.Bootstrap.Mvc.TBootViewPage">

To it's ~/Views/web.config(正如@darin指出的)

或者在需要时实例化助手

@using Twitter.Bootstrap.Mvc
var TBoot = new TBootHelper<TModel>(Html);

我的问题是,我应该创建一个TBootHelper类或只是添加方法HtmlHelper?


我会创建一个自定义TBootHelper以及一个自定义基本视图,所有视图都将继承该视图,并且该视图将具有 type 属性TBootHelper.

而不是强迫开发人员添加@inherits Twitter.Bootstrap.Mvc.TBootViewPage<TModel>对于他想要使用此自定义帮助程序的每个 Razor 模板,我会将其添加到~/Views/web.config文件,一劳永逸:

<pages pageBaseType="Twitter.Bootstrap.Mvc.TBootViewPage">

然后在视图中:

@model MyViewModel
@TBoot.Foobar()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

继承自 HtmlHelper 而不是扩展它 的相关文章

随机推荐

  • jquery/javascript 如何更快地计算宽度

    我有一个有 100 列的表 我正在遍历所有 th 元素 以显式设置每个 th 元素的宽度 var ths table th ths each function i th var th th var width th width th wid
  • Django:无法连接到 Microsoft SQL Server

    我无法使用 Django 版本 1 11 3 连接到 MS SQL 服务器 这是错误 我似乎收到了 django db utils OperationalError 08001 u 08001 unixODBC FreeTDS SQL Se
  • 知道 C 语言的跨平台套接字库(Windows 和 Linux)吗?

    我希望在 Linux 和 Windows 中进行套接字通信 侦听 接受 连接 接收 发送 断开连接 我的项目是用 C 语言编写的 因此除非有人能想到一种方法让我将 C 库集成到 C 项目中 否则该库也必须用 C 语言编写 最终 我希望该库能
  • 找不到文件“twitter/bootstrap”(ROR)

    链接在这里https github com Gtar69 games https github com Gtar69 games I got a problem 我已经完成了如下采购 在 Gemfile 中 gem bootstrap sa
  • $ 和 $.fn 有什么区别?

    我很好奇 不知道之间的区别 and fn 谁能详细向我解释一下吗 还有什么是 fn 是一个函数 具体来说 是一个指向jQuery函数 别名 fn是该函数的一个属性 它指向内部函数的原型initjQuery 用于创建实例的函数 正如我们在 j
  • 当时间落在时间范围内时返回 True?

    我正在制作一个函数来检查 24 小时格式的时间范围内的时间 但是我的代码有一些问题 有人可以指出如何修复吗 My code bool isDoTime int starthour int startminute int endhour in
  • CreateIoCompletionPort 中的并发线程数

    On MSDN 页面CreateIoCompletionPort http msdn microsoft com en us library aa363862 28v VS 85 29 aspx该函数的最后一个参数有一个非常简短的描述 并发
  • 在 ngFor 中声明变量

    在我的 angular2 项目中 我需要呈现一个矩阵 这是我当前的代码 tr td class worker lastName br worker firstName td td class sk table sub header div
  • redshift Convert_timezone 不起作用

    使用 Razor SQL 运行 Redshift 查询时 UTC 日期似乎被视为本地时区 并包含夏令时 例如 运行 SELECT first CONVERT TIMEZONE UTC America New York 2016 03 27
  • 方法“ToString”没有重载需要 1 个参数

    我有一个数据读取器来从数据库读取数据 我正在从销售表中读取 TotalPrice 我想将总价显示为小数点后两位 该代码是一些链接 TotalPrice Text myReader TotalPrice ToString N2 但是我遇到了这
  • Android JSONArray 循环

    这是我从网络服务得到的结果 year 2014 2013 2012 2011 2010 2009 2008 2007 2006 2005 2004 2003 2002 2001 2000 1999 1998 1997 1996 1995 1
  • 并行 make:将 -j8 设置为默认选项

    我可以使用以下命令设置构建过程的线程数 j争论 比如我有4核 4虚拟 当我写的时候 make j8速度增加4倍 是否可以将该值设置为默认值 例如 在Linux Gentoo中 在配置文件中 可以设置这个默认值 附注我有 Arch Linux
  • Windows 10 高分辨率屏幕上的 Spyder 界面图标非常小

    我有一台全新的笔记本电脑 分辨率为 3840 x 2160 运行 Windows 10 在安装 Anaconda Spyder 进行 python 编码后 我注意到图标非常小 对象检查器部分的文本也非常小 有没有办法来解决这个问题 这似乎与
  • 如何在 ANSI C 的结构中使用枚举?

    下面的代码必须在主函数中使用 但我不知道它是如何使用的 struct SomeItem enum MOVIE MUSIC itemType union struct Movie movie struct Music music 该结构用于带
  • Highchart js 最多可绘制 15 个图

    我在 Highchart js 中进行了很多尝试 但仍然找不到减少系列中元素数量的方法 如果我获得超过 15 天的数据 我必须将其减少并以 15 天的数据形式向用户显示 以便用户可以在不拥挤的情况下查看数据 该系列最多有 90 天 我必须减
  • IntelliJ IDEA 仅运行/调试一个文件

    我在 IntelliJ IDEA 中有一个 JAVA 项目 有多个包 但我的包中的某些文件有自己的main 方法并且可以自己运行 但是 如果我右键单击给定文件并选择 调试 运行 File main IntelliJ 将尝试构建包中的所有文件
  • ASP.NET MVC 3 中是否可以有多个依赖解析器?

    ASP NET MVC 3 中是否可以有多个依赖解析器 类似于 ModelBinder 和 Provider 的情况 我可以想到一种场景 拥有多个 容器 或 解析器 是有用的 那就是多租户 通过多租户 您可以在同一个 Web 应用程序中运行
  • 禁用 g++ 的返回值优化

    我需要在命令行上使用什么标志来禁用 g 编译器自动启用的返回值优化 fno elide constructors C 标准允许实现省略创建临时对象 该临时对象仅用于初始化相同类型的另一个对象 指定此选项会禁用该优化 并强制 G 在所有情况下
  • Android:调整位图大小而不损失质量

    在发布之前我确实搜索了整个网络 我的问题是 我无法在不损失图像质量的情况下调整位图大小 质量非常差并且像素化 我从相机获取位图 然后必须缩小它的尺寸 这样我就可以更快地将其上传到服务器 这是进行采样的函数 public Bitmap res
  • 继承自 HtmlHelper 而不是扩展它

    我正在创建一组用于渲染兼容的助手推特引导程序 http twitter github com bootstraphtml 在我看来 当谈到如何将这些方法组合在一起时 我有两种选择 扩展 HtmlHelper 在方法中添加 TB 前缀 创建一