2011-01-27 35 views
0

我有一个操作过滤器,它实现了一个基本检查,看看用户是否通过身份验证。重定向到路由结果资源未找到

如果用户没有通过验证我实现了这一点:

 var routeValue = new RouteValueDictionary 
          {          
           {"Controller", "Permission"}, 
           {"Action", "NoAccess"} 
          }; 

     filterContext.Result = new RedirectToRouteResult(routeValue); 

     base.OnActionExecuting(filterContext); 

确定这个工程,并指出用户:

的http://本地主机:/许可/ noaccess下

但问题开始发生时,我重新加载我的项目,然后用户被重定向到:

http:// localhost:/Views/Permission/NoAccess.aspx

我得到错误:无法找到资源。

有些困惑,为什么它的工作原理,然后再次打破后重新加载?任何建议?也许我应该用另一种方法重定向?

使用IIS表示,Visual Studio 2010中,MVC2

回答

0

这看起来像Visual Studio中的一个不幸的特点...

如果你有看法NoAccess.aspx在Visual Studio中打开,然后按F5, Visual Studio使用URL http:/localhost:11111/Views/Permission/NoAccess.aspx打开Internet Explorer。此URL可能适用于传统的ASP.NET应用程序,但它不适用于ASP.NET MVC应用程序。它基本上是Visual Studio中的一个错误,当然不是在你的应用程序中。

如果您打开一个.cs文件,然后按F5,Visual Studio将使用URL http:/localhost:11111/启动Internet Explorer。

我不确定这适用于您的问题,因为我不知道您的意思是重新加载您的项目。但它可能是你看到的。

+0

是的,我认为它的VS错误..因为我可以重新启动应用程序..以及它的命中或错过,如果它的工作与否。如果没有其他反馈,我会给你提供答案的要点。谢了哥们 – nologo 2011-01-27 14:31:53