Spark View Engine с настраиваемыми помощниками HTML

Я добавил несколько моих собственных помощников в 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>") %>

Теперь, когда я использую движок Spark View, я не могу заставить его работать. Я получаю следующую ошибку:

'System.Web.Mvc.HtmlHelper' не содержит определения для 'h', и не может быть найден метод расширения 'h', принимающий первый аргумент типа 'System.Web.Mvc.HtmlHelper' (отсутствует ли директива using или ссылка на сборку?)

Как я могу заставить Spark видеть дополнительных помощников?

РЕДАКТИРОВАТЬ: Я также добавил _global.spark с <using namespace="myApp" /> безрезультатно


person jdiaz    schedule 28.07.2010    source источник


Ответы (3)


Мой _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" />
person RobertTheGrey    schedule 17.10.2010

Убедитесь, что System.Web.Mvc.HtmlHelper зарегистрирован в вашем web.config в разделе конфигурации spark.

person Ahmad    schedule 28.07.2010

Добавление <using namespace="System.Web.Mvc" /> в файл _global.spark, похоже, решило эту проблему.

person jdiaz    schedule 28.07.2010