Spark View Engine с пользовательскими HTML-помощниками - PullRequest
1 голос
/ 28 июля 2010

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

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

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

Ответы [ 3 ]

3 голосов
/ 17 октября 2010

Мой _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" />
0 голосов
/ 28 июля 2010

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

0 голосов
/ 28 июля 2010

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

...