我有一个动作过滤器,它实现了一个基本检查,以查看用户是否经过身份验证。
如果用户未经过身份验证,我已实现此目的:
var routeValue = new RouteValueDictionary { {"Controller", "Permission"}, {"Action", "NoAccess"} }; filterContext.Result = new RedirectToRouteResult(routeValue); base.OnActionExecuting(filterContext);
确定这有效,并指出用户:
的http://本地主机:/许可/ noaccess下
但是当我重新加载我的项目并且用户被重定向到:
时,问题就开始发生了的http://本地主机:/Views/Permission/NoAccess.aspx
我收到错误:无法找到资源。
稍微混淆了为什么它会工作一次然后在重新加载后再次中断?任何建议?也许我应该使用其他方法重定向?
使用IIS express,visual studio 2010,MVC2
答案 0 :(得分:0)
这看起来像是Visual Studio的一个不幸功能......
如果在Visual Studio中打开了NoAccess.aspx视图,然后按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。
我不确定这是否适用于您的问题,因为我不知道重新加载项目的含义。但它可能就是你所看到的。