星火视图引擎的自定义HTML助手(Spark View Engine with custom HTM

2019-09-28 11:24发布

我已经加入了一些我自己的助手到System.Web.Mvc我的项目中,并得到了其与默认asp.net MVC视图引擎的工作。 通过定义像帮手

namespace System.Web.Mvc
{
    public static class XSSHelper
    {
        public static string h(this HtmlHelper helper, string input)
        {
            return AntiXss.HtmlEncode(input);
        }

        public static string Sanitize(this HtmlHelper helper, string input)
        {
            return AntiXss.GetSafeHtml(input);
        }

        public static string hscript(this HtmlHelper helper, string input)
        {
          return AntiXss.JavaScriptEncode(input);
        }
    }
}

我把它叫做使用<%= Html.h("<h1>some string</h1>") %>

现在,我使用的火花视图引擎我似乎无法得到这个工作。 我收到以下错误:

“System.Web.Mvc.HtmlHelper”不包含关于“H”和没有扩展方法的“h”接受类型“System.Web.Mvc.HtmlHelper”的第一个参数的定义可以找到(是否缺少using指令或程序集引用?)”

我怎样才能星火看到更多的帮手?

编辑:我还添加_global.spark与<using namespace="myApp" />无济于事

Answer 1:

我_global.spark通常结束的时候我的项目正在紧锣密鼓地进行这样看。 我建议只是在做这在一开始就避免这些问题:

<use namespace="Spark"/>
<use namespace="System.Web.Mvc"/>
<use namespace="System.Web.Mvc.Ajax"/>
<use namespace="System.Web.Mvc.Html"/>
<use namespace="System.Web.Routing"/>
<use namespace="System.Linq"/>
<use namespace="System.Collections.Generic"/>

<use assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<use assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<use assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<use assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<use assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<use assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<use assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<use assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />


Answer 2:

确保System.Web.Mvc.HtmlHelper在火花配置部分中你的web.config注册。



Answer 3:

新增<using namespace="System.Web.Mvc" />在_global.spark文件似乎已经解决了这个问题。



文章来源: Spark View Engine with custom HTML Helpers