首頁  >  文章  >  後端開發  >  在Core中使用MVC路由的配置

在Core中使用MVC路由的配置

Y2J
Y2J原創
2017-05-05 13:33:551781瀏覽

這篇文章主要介紹了ASP.NET Core中使用預設MVC路由的配置,小編覺得蠻不錯的,現在分享給大家,也給大家做個參考。一起跟著小編過來看看吧

ASP.NET Core裡Route這塊的改動不大,只是一些用法上有了調整,提供了一些更簡潔的語法。

而對於自訂路由的支援當然也是沒有問題的,這個功能應該是從MVC1.0版本就已經有這個功能。

先看看ASP.NET Core裡面實作預設MVC路由的設定方式

通常情況下,在使用MVC專案的時候,預設的路由就夠了,就是常見的透過Controller和Action取得具體的方法的方式。

從一個最基本的專案開始,執行下列步驟,就可以讓專案支援MVC路由

1.建立一個空白的ASP.NET Core(Empty) Web專案

2.開啟project.json,在」dependencies」節點下增加如下依賴項目

"Microsoft.AspNetCore.Mvc": "1.0.0"

儲存之後,專案會自動restore packages到本機

3.加入預設MVC路由設定

開啟Startup.cs檔案

#在ConfigureServices方法,加入如下程式碼

services.AddMvc();

這個擴充方法把Mvc的一些服務都注入到容器中

在Configure方法,註解最後兜底的那個「hello world」語句,這個語句的作用是不管什麼請求都它來負責。

然後在Configure方法加入如下程式碼

app.UseMvcWithDefaultRoute();

這個擴充方法實際上使用了一個Middleware,預設的Url template跟之前MVC版本的一致,上述程式碼等同於以下效果

app.UseMvc(routes =>
   {
    routes.MapRoute(
     name: "Default",
     template: "{controller}/{action}/{id?}",
     defaults: new {controller = "Home", action = "Index"}
    );
   });

最終的Startup.cs程式碼如下

public class Startup
 {
  public void ConfigureServices(IServiceCollection services)
  {
   services.AddMvc();
  }

  // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
  public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
  {
   loggerFactory.AddConsole();

   if (env.IsDevelopment())
   {
    app.UseDeveloperExceptionPage();
   }

   //app.Run(async (context) =>
   //{
   // await context.Response.WriteAsync("Hello World!");
   //});
   app.UseMvcWithDefaultRoute();
  }
 }

4.到此設定已經完成,但是執行網站直接顯示404,沒顯示Hello world說明已經生效了,只是Empty的專案沒有Controller,那就定義一個Controller吧。

手動在專案根目錄建立Controllers目錄,然後新建一個Controller,名字為HomeController,然後直接執行網站(應該刷新一下就可以了)。

網站繼續提示錯誤,但不是404了,是提示找不到Index這個View。

繼續在專案根目錄建立Views目錄,然後在Views目錄下新建一個Home目錄,在Home目錄新建一個Index.cshtml,填入一些內容,再一次刷新就可以了。

當然這是最基本的配置,例如要進一步支援在cshtml裡面實現智慧感知,支援靜態檔案路由等還得加入更多的依賴和配置。

【相關推薦】

1. ASP免費影片教學

#2. ASP教學

#3. 李炎恢ASP基礎影片教學

以上是在Core中使用MVC路由的配置的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn