環境與版本
作業系統:Window10 64x 版本:2004
開發軟件(IDE):Visual Studio 2019 Community
.NET版本:ASP.NET Core 3.1
專案架構:MVC
範本參考
新增控制器
在Controller資料夾下,創建一個HelloWorldController.cs的類別。(如圖)
以下列內容取代 Controllers/HelloWorldController.cs 的內容:
using Microsoft.AspNetCore.Mvc; using System.Text.Encodings.Web; namespace MvcMovie.Controllers { public class HelloWorldController : Controller { // // GET: /HelloWorld/ public string Index() { return "This is my default action..."; } // // GET: /HelloWorld/Welcome/ public string Welcome() { return "This is the Welcome action method..."; } // GET: /HelloWorld/Welcome_1/ // Requires using System.Text.Encodings.Web; public string Welcome_1(string name, int numTimes = 1) { return HtmlEncoder.Default.Encode($"Hello {name}, NumTimes is: {numTimes}"); } // GET: /HelloWorld/Welcome_2/ public string Welcome_2(string name, int ID = 1) { return HtmlEncoder.Default.Encode($"Hello {name}, ID: {ID}"); } } }
效果展示
GET: /HelloWorld/
GET: /HelloWorld/Welcome/
MVC 使用的預設 URL 路由邏輯使用像這樣的格式來判斷要叫用的程式碼:
/[Controller]/[ActionName]/[Parameters]
在 Startup.cs 檔案的 Configure 方法中設定路由格式
app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); });
不提供任何 URL 區段時,則會預設為範本行5中指定的 “Home” 控制器和 “Index” 方法。
GET: /HelloWorld/Welcome_1/?name=jack&numTimes=2
給予參數的方式。
GET: /HelloWorld/Welcome_2/5?name=jack
URL 區段符合路由參數 id,所以直接帶入
app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); });
參考資料:
第2部分:將控制器新增至 ASP.NET Core MVC 應用程式:https://docs.microsoft.com/zh-tw/aspnet/core/tutorials/first-mvc-app/adding-controller?view=aspnetcore-3.1&tabs=visual-studio
Pingback: [C#學習]ASP.NET Core MVC 檢視(View) 使用與範本 - Steven玄