在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 的部署~