[C#] .Net Core Mvc 的 Action 找不到及Naming Rule of Async
如題,.Net Core 遇到Action 找不到的問題,發現是 Async 的命名規則有調整。 可以查看看 MvcOptions.SuppressAsyncSuffixInActionNames Property 有說到,會自動將 Async 關鍵字忽略,提供一下處理方式。 1. 使用Url時移除Async字眼 @Html.ActionLink("送出", "SaveData", "User", new { UserId = item.UserId, UserName = item.UserName }) 2. Controller 加上 [Route("[controller]/{Action}Async")] [HttpPost] [Route("[controller]/SaveDataAsync")] public async Task SaveDataAsync(string UserId, string UserName) { // TODO... return RedirectToAction("Index"); } 3. 調整設定,不忽略"Async" // .NET 6 / .NET 7版本 public void ConfigureServices(IServiceCollection services) { services.AddControllersWithViews(options => { // 當設為 true 時,MVC 會自動忽略控制器動作方法名稱中的 "Async" 字樣 options.SuppressAsyncSuffixInActionNames = false; }); } // 舊的 services.AddMvc() 寫法 services.AddMvc(options => { options.SuppressAsyncSuffixInActionNames = false; }); 4. 統一將 Async 改為 Asynch...