Asp.Net Mvc Areas 的用法與好處


前言 在項目中為什么要使用Areas 進行分離

大家都知道,一般的Web應用都有前台(面向用戶)和后台(面向管理員)兩部分,我們希望以/localhost/Admin 開始的Url 是用戶的后台管理地址,因此我們會這么配置自己的路由圖。

 

            routes.MapRoute(
                name: "Admin",
                url: "Admin/{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
                );

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );

  運行程序,我們會發現,localhost/Admin/AdminUser/Add 和 localhost/AdminUser/Add 都能打開Add 頁面,這與我們的初衷相悖,我們要的是Url只有localhost/Admin/AdminUser/Add 

能打開管理頁面,怎么解決?

一:使用路由限制 Contraints 限制控制器為Admin

            routes.MapRoute(
                name: "Admin",
                url: "Admin/{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
                constraints:new { controller=@"^Admin.*$" }
                );

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
                constraints:new { controller=@"^[^A].*$"}
            );

  運行代碼,基本滿足我們的需要,但是使用這種方法,感覺有點遜呀

二:讓分離Area登場 

在add 中選擇區域 

 

然后配置路由表,使用NameSpace 限制 

參考別人的博客地址:http://blog.csdn.net/a497785609/article/details/50160605


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM