ASP.NET Core中使用默認(rèn)MVC路由的配置
ASP.NET Core里Route這塊的改動(dòng)不大,只是一些用法上有了調(diào)整,提供了一些更加簡(jiǎn)潔的語(yǔ)法。
而對(duì)于自定義路由的支持當(dāng)然也是沒(méi)有問(wèn)題的,這個(gè)功能應(yīng)該是從MVC1.0版本就已經(jīng)有這個(gè)功能。
先看看ASP.NET Core里面實(shí)現(xiàn)默認(rèn)MVC路由的配置方式
通常情況下,在使用MVC項(xiàng)目的時(shí)候,默認(rèn)的路由就足夠了,就是常見(jiàn)的通過(guò)Controller和Action獲取具體的方法的方式。
從一個(gè)最基本的項(xiàng)目開(kāi)始,執(zhí)行以下步驟,就可以使得項(xiàng)目支持MVC路由
1.創(chuàng)建一個(gè)空白的ASP.NET Core(Empty) Web項(xiàng)目
2.打開(kāi)project.json,在”dependencies”節(jié)點(diǎn)下增加如下依賴項(xiàng)目
"Microsoft.AspNetCore.Mvc": "1.0.0"
保存之后,項(xiàng)目會(huì)自動(dòng)restore packages到本地
3.加入默認(rèn)MVC路由配置
打開(kāi)Startup.cs文件
在ConfigureServices方法,加入如下代碼
services.AddMvc();
這個(gè)擴(kuò)展方法把Mvc的一些服務(wù)都注入到容器中
在Configure方法,注釋最后兜底的那個(gè)“hello world”語(yǔ)句,這個(gè)語(yǔ)句的作用是不管什么請(qǐng)求都它來(lái)負(fù)責(zé)。
然后在Configure方法加入如下代碼
app.UseMvcWithDefaultRoute();
這個(gè)擴(kuò)展方法實(shí)際上使用了一個(gè)Middleware,默認(rèn)的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.到此配置已經(jīng)完成,但是運(yùn)行站點(diǎn)直接顯示404,沒(méi)顯示Hello world說(shuō)明已經(jīng)生效了,只是Empty的項(xiàng)目沒(méi)有Controller,那么定義一個(gè)Controller吧。
手動(dòng)在項(xiàng)目根目錄創(chuàng)建Controllers目錄,然后新建一個(gè)Controller,名字為HomeController,然后直接運(yùn)行網(wǎng)站(應(yīng)該刷新一下就可以了)。
站點(diǎn)繼續(xù)提示錯(cuò)誤,但不是404了,是提示找不到Index這個(gè)View。

繼續(xù)在項(xiàng)目根目錄創(chuàng)建Views目錄,然后在Views目錄下新建一個(gè)Home目錄,在Home目錄新建一個(gè)Index.cshtml,填寫(xiě)一些內(nèi)容,再次刷新就可以了。

當(dāng)然這是最基本的配置,比如要進(jìn)一步支持在cshtml里面實(shí)現(xiàn)智能感知,支持靜態(tài)文件路由等還得加入更多的依賴和配置。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
asp.net 處理F5刷新頁(yè)面重復(fù)提交頁(yè)面的一個(gè)思路
當(dāng)提交完一個(gè)頁(yè)面后,如果我們?cè)俅吸c(diǎn)擊F5刷新該頁(yè)面的話,會(huì)彈出一個(gè)提示,提示我們?nèi)绻^續(xù),則會(huì)重新發(fā)送提交我們剛才提交的內(nèi)容,要是類似付款或一次性的操作,我們不應(yīng)該這樣操作,否則會(huì)造成重復(fù)提交的問(wèn)題。2010-02-02
.NET中如何將文本文件的內(nèi)容存儲(chǔ)到DataSet
大家在項(xiàng)目中比較多的會(huì)對(duì)文件進(jìn)行操作,例如文件的上傳下載,文件的壓縮和解壓等IO操作。而在.NET項(xiàng)目中較多的會(huì)使用DataSet,DataTable進(jìn)行數(shù)據(jù)的緩存。每一個(gè)DataSet都是一個(gè)或多個(gè)DataTable對(duì)象的集合,本文主要介紹的是如何將文本文件的內(nèi)容存儲(chǔ)到DataSet里去。2016-12-12
.NET Core Web APi大文件分片上傳研究實(shí)現(xiàn)
這篇文章主要介紹了.NET Core Web APi大文件分片上傳研究實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
ASP.NET 鏈接 Access 數(shù)據(jù)庫(kù)路徑問(wèn)題最終解決方案
ASP.NET 鏈接 Access 數(shù)據(jù)庫(kù)路徑問(wèn)題最終解決方案...2007-04-04
VS2010/VS2013項(xiàng)目創(chuàng)建 ADO.NET連接mysql/sql server詳細(xì)步驟
這篇文章主要介紹了VS2010/VS2013項(xiàng)目創(chuàng)建,及ADO.NET連接mysql/sql server詳細(xì)步驟,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10
服務(wù)器安全狗導(dǎo)致ASP.NET網(wǎng)站運(yùn)行出錯(cuò)的一個(gè)案例
這篇文章主要介紹了服務(wù)器安全狗導(dǎo)致ASP.NET網(wǎng)站運(yùn)行出錯(cuò)的一個(gè)案例,最后一并給出了解決方法,需要的朋友可以參考下2014-08-08
.Net?Core應(yīng)用增強(qiáng)型跨平臺(tái)串口類庫(kù)CustomSerialPort()詳解
本文詳細(xì)講解了.Net?Core應(yīng)用增強(qiáng)型跨平臺(tái)串口類庫(kù)CustomSerialPort(),文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-01-01
asp.net簡(jiǎn)單頁(yè)面控件賦值實(shí)現(xiàn)方法
這篇文章主要介紹了asp.net簡(jiǎn)單頁(yè)面控件賦值實(shí)現(xiàn)方法,涉及數(shù)據(jù)庫(kù)的查詢及頁(yè)面控件元素賦值操作相關(guān)技巧,需要的朋友可以參考下2016-07-07

