在Global.asax中,如何拦截对某个区域的所有调用,并将所有被阻止的调用重定向到错误页面?ASP.NET MVC排除除区域以外的所有区域
0
A
回答
0
最简单的方法可能是更新路由,以便控制器是硬编码和URL模板的一部分,而不是使用可以使用任何控制器的默认路由。
如果你想要一个自定义的错误页面而不是404,添加另一条匹配任何东西的路由,并且还有一个硬编码的控制器和动作。
您也可以通过Application_BeginRequest中的URL进行过滤,但这可能比路由所需的两行代码更有效。
0
区域只是组织代码并分离出属于该区域的路由的一种很好的方式。有了这个说法,你不一定要寻找一个特定的区域,但路线将匹配该地区的行动。所以,如果你有一个管理区,你可能有这样的路线:
context.MapRoute(
"AdminRoute",
"Admin/{controller}/{action}",
new { controller = "Admin", action = "Index" });
你知道这是一个管理区的路线,因为你应该知道哪些路由将调用在管理区域控制器的操作。如果你想利用这条航线上面的例子,重定向到一个错误页面,你可以使用通配符路线:
context.MapRoute(
"AdminErrorRoute",
"Admin/{*url}",
new { controller = "Error", action = "Error" });
这将需要与/管理员开头的路线,并将其重定向到一个错误页面。不知道为什么你想要将所有用户重定向到整个区域的错误页面。如果您只是希望用户按用户分类,则可以使用控制器操作上的属性过滤器来确定用户是否应该重定向到错误页面。类似这样的:
[IsUserAdmin()]
public ActionResult Index() { .. }
相关问题
- 1. 对话框:除一些区域以外的所有其他区域
- 2. ASP.NET MVC ActionLink以外的区域
- 3. 在addEventListener中排除DOM的区域
- 4. Asp.net MVC文本区域
- 5. ASP.NET MVC区域 - ActionLink和RedirectToAction
- 6. ASP.NET MVC路由和区域
- 7. Asp.Net MVC IgnoreRoute在区域内
- 8. ASP.NET MVC与区域路由
- 9. Asp.Net MVC虚拟区域
- 10. ASP.Net MVC每区域会员
- 11. ASP.NET MVC 5路由区域
- 12. Asp.net MVC安全区域
- 13. ASP.NET MVC多级区域
- 14. ASP.NET MVC 1.0区域支持
- 15. mutlitenant asp.net mvc 2 - 域到区域路线
- 16. mongodb如何找到排除区域,$ geoExclusion?
- 17. className被移除点击区域外
- 18. RedirectToAction以外的区域
- 19. 从图像中减去除最大区域以外的所有轮廓
- 20. Preg-replace - 替换除域和其子域以外的所有URL
- 21. 修剪图像(剪切以去除所有空白区域)
- 22. MVC区域 - 非区域路径解决到区域
- 23. ASP.NET MVC区域:如何在URL中隐藏“区域”名称?
- 24. ASP.net MVC - 在区域之间共享部分区域
- 25. ASP.Net MVC 2区域,子区域和路线
- 26. ASP.NET MVC3区域
- 27. 使用区域本身上的按钮删除区域
- 28. 删除.widget区域,.comment区域和.main-navigation之间的空间。
- 29. 从区间中排除数字,检索其余区域
- 30. css:填入除了选定区域以外的文字框