继承HtmlHelper而不是扩展它

时间:2012-02-26 20:41:32

标签: asp.net-mvc-3 html-helper

我正在创建一组帮助程序来渲染兼容的Twitter Bootstrap html。在我看来,关于如何将这些方法组合在一起,我有两个选择:

  • 使用TB
  • 扩展HtmlHelper前缀方法
  • 创建一个包含方法
  • 的新类TBootHelper

在第二种情况下,为了使TBoot助手可用,开发人员将添加

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

它是~/Views/web.config(由@darin指出)

或者在需要时实例化帮助

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

我的问题是,我应该创建TBootHelper课程还是只添加HtmlHelper的方法?

1 个答案:

答案 0 :(得分:3)

我将创建一个自定义TBootHelper和一个自定义基本视图,所有视图都将从该视图继承,并具有类型TBootHelper的属性。

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

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

然后在视图中:

@model MyViewModel
@TBoot.Foobar()