查看基本模板的这个答案。从这一点开始,您可以创建如下所示的辅助类。这些是创建所必需的,因为Scripts
它是一个静态类,不能像和类TemplateBase
一样作为属性添加到您的。HtmlHelper
ViewDataDictionary
public class ScriptsHelper
{
public IHtmlString Render(params string[] scripts)
{
return Styles.Render(scripts);
}
}
然后,您可以将这些辅助类HtmlTemplateBase<T>
作为公共属性添加到您的类中
[RequireNamespaces("System.Web.Mvc.Html")]
public class HtmlTemplateBase<T>:TemplateBase<T>, IViewDataContainer
{
public ScriptsHelper Scripts = new ScriptsHelper();
//... Additional Code
}
您的 RazorEngine 视图现在可以访问您已添加到帮助程序类的函数。所以你间接调用了你需要的函数,并且可以像使用普通类一样调用它们。
// This will actually be calling ScriptsHelper.Scripts(), which then calls the static function
@Scripts.Render("~/scripts/scripturl")
这些是该问题的一些棘手的解决方案。ScriptsHelper
您将需要使用所需的每个Scripts
功能来扩展您的类。Styles
您的班级也可以执行相同的过程。
您也许可以使用Reference Resolver 类来导入 System.Web.Optimization 命名空间,但我无法让它正常工作。