C# Area 雙重路由如何寫


在WebApi項目里面

一般除了接口, 還有管理端...一些亂七八糟的,你想展示的東西, 一種做法是分開寫:

比如管理后台一個項目, 然后接口一個, 然后頁面一個, 其實這樣做也可以,但是這么做, 無論是我們部署的時候,

還是調試的時候,都帶來了極大的不便。 項目本身 冗余的地方也有很多, 比如說Model層, 比如說BLL, DAL這些,很多重用的方法、

邏輯處理,這些都是不必要的東西。 接下來, 給大家推薦一種 Area 的方式,來解決這個問題。

 

 

 添加區域, 出現了對應的

在Areas 里面, 會有獨立的一套 MVC 

 

我們先來看看, 這里面的路由是如何寫的

 

public class AdminAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "Admin";
}
}

public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional }
);
}
}

 

繼承於  Area 路由,其他的地方, 和我們正常的路由注冊相同。

那這段區域路由,如何添加到路由表里, 供我們訪問呢?

 

Global.asax

 

 

注冊 Areas 路由的地方  有一段 AreaRegistration.RegisterAllAreas(); 

是注冊所有的繼承於 AreaRegistration的路由~

 

至此, 你以為結束了? 還沒有

 

WebApi 的路由還沒有注冊呢~ 

 

public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

//首頁路由
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Index", action = "Index", id = UrlParameter.Optional },
namespaces: new string[] { "WebApi.Areas.Luma.Controllers" }
).DataTokens.Add("Area", "Luma");

//Api路由
routes.MapRoute(
name: "apiroute",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Help", action = "Index", id = UrlParameter.Optional }
);
}
}

 

其中有一段路由比較特別, 插入了一段 namespaces 的注冊信息, 這一段內容, 就是雙路由中, 默認頁的關鍵

 

這些希望對大家能有所幫助吧~ 

 

改天再分享 webapi help 的部署~ 

 


免責聲明!

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



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