Razor Views中的HttpContext

alt*_*tso 5 razor asp.net-mvc-3

我试图将一些ASPX标记移植到Razor,但编译器抛出了一个错误.

ASPX(工作正常):

<% if (node.IsAccessibleToUser(Context)) { %>
    // markup
<% } %>
Run Code Online (Sandbox Code Playgroud)

CSHTML(抛出错误):

@if (node.IsAccessibleToUser(Context)) {
    // markup
}
Run Code Online (Sandbox Code Playgroud)

参数1:无法从'System.Web.HttpContextBase'转换为'System.Web.HttpContext'

如何HttpContext在Razor视图中获取参考?使用是正确的HttpContext.Current还是我需要以不同的方式检查站点地图节点的可见性?

小智 11

WebViewPage.Context是HttpContextBase实例.WebViewPage.Context.ApplicationInstance.Context是HttpContext实例.

@if (node.IsAccessibleToUser(Context.ApplicationInstance.Context)) {
    // markup
}
Run Code Online (Sandbox Code Playgroud)