今天在學.net core的時候發現了一個問題,終結點死活映射不了自己添加的控制器,后經過研究發現解決方法,可能這個問題不應該叫做問題,可是我是初學者,就把這個問題給拎出來,本人開發環境 VS2019+.Net Core 3.1,問題重現程序:
1.新建Web Core專案,選擇空專案
2.新建檔案夾“Controller”,右鍵該檔案夾->添加->控制器->API控制器-空->設定名稱為“HomeController.cs”
3.修改路由特性為 [Route("[controller]")]
4.在該路由器類下添加Index函式,回傳Test字串
5.修改Startup類中Configure函式:
原代碼:
app.UseEndpoints(endpoints => { endpoints.MapGet("/", async context => { await context.Response.WriteAsync("Hello World!"); }); });
修改后的代碼:
app.UseEndpoints(endpoints => { endpoints.MapControllerRoute("Default", "{controller=Home}/{action=Index}/{id?}"); });
運行程式顯示404
然后將HomeController中的兩個特性洗掉就可以正常運行
原因是API控制器和MVC控制器是不一樣的
MVC控制器通過URL選擇action方法
API控制器根據HTTP請求方法的不同來選擇API控制器方法
兩種控制器使用的方法不一樣,所以不能混淆使用
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/83040.html
標籤:.NET Core
