Сила бритвы, так что всегда выводит HTML - PullRequest
0 голосов
/ 23 февраля 2012

Мое лучшее предположение - переопределить System.Web.WebPages.WebPageBase. Записать метод, чтобы он возвращал WriteLiteral, но тогда я не могу использовать ключ @model, который я должен использовать ... На сайтах, которые я делаю, нет никакого риска от XSS-атака, и у меня есть несколько тысяч переменных, которые мне нужно отобразить в моем представлении, которые содержат html, поэтому я не хочу писать @ Html.Raw для каждой переменной, которую я написал ... И дело не в плохом дизайне :))

РЕДАКТИРОВАТЬ: я получил это сам Неважно, я переопределил неправильный метод ...

namespace a
{
    public abstract class View<TModel> : System.Web.Mvc.WebViewPage<TModel>
    {
        public override void Write(Object value)
        {
            base.WriteLiteral(value);
        }
    }
}

и обязательно измените ваш файл web.config INSIDE Просмотреть папку, как это

<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="a.View">

1 Ответ

1 голос
/ 23 февраля 2012

Это должно сработать.Используйте Views/web.config system.web.webPages.razor/pages[pageBaseType], чтобы настроить его.

public abstract class UnsafeWebViewPage<TModel> : WebViewPage<TModel>
{
    public override void Write(object value)
    {
        base.WriteLiteral(value);
    }
}

edit: черт, слишком поздно:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...