建了一個 ASP.NET Core 3.1 的專案,然后用了 MVC 屬性路由。Startup 類如下:
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<DataRepositories.ISoftwareRepository, DataRepositories.MemorySoftwareRepository>();
services.AddMvc(sa => sa.EnableEndpointRouting = false);
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment()) app.UseDeveloperExceptionPage();
app.UseStaticFiles();
app.UseMvc();
app.Run(async context => await context.Response.WriteAsync("Last Middleware!"));
}
}
控制器(在 Controllers 這個子命名空間內)如下:
[Route("[controller]")]
public class SoftwareQueryController : Controller
{
private readonly ISoftwareRepository _softwareRepository;
public SoftwareQueryController(ISoftwareRepository sr)
{
_softwareRepository = sr;
}
[Route("[action]/{namePattern}")]
public ViewResult Softwares(string namePattern)
{
var sws = _softwareRepository.GetSoftwares(namePattern);
return View(sws);
}
}
不知道還有什么代碼需要貼的。
啟動除錯,URL 為:http://localhost:58261/SoftwareQuery/Softwares/s1
瀏覽器中出現錯誤資訊:

若把上述 URL 中的 SoftwareQuery 或 Softwares 胡亂改一下,就會走到最后一個中間件。但上面這個 URL 始終是這個錯誤。
已經嘗試過洗掉 app.UseStaticFiles(),沒有變化,所以不是它的問題。為什么路由沒有生效,而是被當成了目錄訪問?
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/202014.html
標籤:ASP.NET
下一篇:C#.NET 強大的LINQ
