1. 程式人生 > 實用技巧 >ASP.Net Core -- 常規路由

ASP.Net Core -- 常規路由

ASP.NET Core MVC 中有兩種路由技術,分別是:“常規路由”和“屬性路由”;當來自瀏覽器的請求到達我們的應用程式時,MVC 中的控制器會處理傳入的 HTTP請求並響應使用者操作,請求URL會被對映到對應的控制器,並找到對應的操作方法上。此對映過程是由我們的應用程式中定義的路由規則完成。

例如,當向http://localhost:xxxx/Home/Index發出請求時,解析URL,就會對映到對應的“HomeController”控制器中的“Index()”方法。

ASP.NET Core MVC 中 的預設路由

Startup.cs檔案中 Configure()方法中,我們呼叫了UseMvcWithDefaultRoute()擴充套件方法。 正是這種方法將 MVC 與預設路由新增到我們的應用程式的請求處理管道中。

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }

    app.UseStaticFiles();

    app.UseMvcWithDefaultRoute();
}

我們可以看到,在UseMVCDefaultRoute中有一個預設的路由,當專案啟動後,就會對映到“Home”控制器下的“Index()”操作方法。如圖:

UseMvc 或 UseMvcWithDefaultRoute

如果要定義自己的路徑模板並希望更多地控制路徑,請使用 UseMvc()方法,而不是 UseMvcWithDefaultRoute()方法。

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            
if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseStaticFiles(); //app.UseMvcWithDefaultRoute(); app.UseMvc(route => { route.MapRoute("default", "{controller=Department}/{action=List}/{id?}");//這裡自己定義,控制器的名稱,方法名,引數名 }); app.Run(async (context) => { await context.Response.WriteAsync("hello world"); }); }

這樣,啟動專案,就會預設對映到名為“Department”的控制器下的“List”方法。