在Core中使用MVC路由的配置

來源:互聯網
上載者:User
這篇文章主要介紹了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基礎視頻教程

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.