在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:填入除了選定區域以外的文字框