我最好的猜测是覆盖System.Web.WebPages.WebPageBase写metod所以它返回WriteLiteral,但是我不能使用@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);
}
}
}
并确保修改您的web.config INSIDE View文件夹,如下所示
<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">
答案 0 :(得分:1)
这应该可以解决问题。使用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);
}
}
编辑:该死的,为时已晚:)