Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 强制razor,以便始终输出html_Asp.net Mvc 3_Razor_Overriding - Fatal编程技术网

Asp.net mvc 3 强制razor,以便始终输出html

Asp.net mvc 3 强制razor,以便始终输出html,asp.net-mvc-3,razor,overriding,Asp.net Mvc 3,Razor,Overriding,我的最佳猜测是重写System.Web.WebPages.WebPageBase Write metod,使其返回WriteEleral,但我不能使用@model keywor,我必须使用它。。。在我做的网站上,XSS攻击根本没有风险,我需要在视图中显示几千个包含html的变量,所以我不想为我写的每个变量都写@html.Raw。。。 这与糟糕的设计无关:)) 编辑:我自己买的 没关系,我覆盖了错误的方法 namespace a { public abstract class View&l

我的最佳猜测是重写System.Web.WebPages.WebPageBase Write metod,使其返回WriteEleral,但我不能使用@model keywor,我必须使用它。。。在我做的网站上,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);
        }
    }
}
名称空间a
{
公共抽象类视图:System.Web.Mvc.WebViewPage
{
公共重写无效写入(对象值)
{
base.WriteLiteral(值);
}
}
}
并确保在视图文件夹中修改web.config,如下所示

<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">

这应该可以做到。使用
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);
    }
}
公共抽象类UnsafeWebViewPage:WebViewPage
{
公共重写无效写入(对象值)
{
base.WriteLiteral(值);
}
}

编辑:该死,太晚了:)

这个问题没有意义。请从你的问题的完整描述开始。很抱歉英语不好。。。问题是当你把@Variable放在视图中时,它会输出html编码的变量,我想要html。。。现在@Html.Raw(Variable)将完成这项工作,但我不想在我想要输出的每个变量上都写入Html.Raw…在通过VS2011更新到MVC 4后,此解决方案抛出System.InvalidOperationException:Stack empty。