【发布时间】:2019-10-18 17:41:56
【问题描述】:
我试图弄清楚如何正确替换曾经是 .net core 2.2 一部分的 app.UseMvc() 代码。这些示例甚至告诉我可以调用的所有代码是什么,但我还不明白应该调用哪个代码。例如,对于我的 MVC Web 应用程序,我有以下内容:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseStatusCodePagesWithReExecute("/Error/Index");
app.UseMiddleware<ExceptionHandler>();
app.UseStaticFiles(new StaticFileOptions()
{
OnPrepareResponse = (context) =>
{
context.Context.Response.GetTypedHeaders()
.CacheControl = new CacheControlHeaderValue
{
MaxAge = TimeSpan.FromDays(30)
};
}
});
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
endpoints.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}");
});
}
在我将在UseMvc() 选项中提供我的路由之前。但是现在看来我必须在MapControllerRoute 中提供它但是这些示例似乎总是也调用MapRazorPages()。我需要两个都打还是我想只打一个?两者之间的实际区别是什么?如何设置默认控制器和默认操作?
【问题讨论】:
-
一个用于控制器 (MVC),另一个用于 Razor Pages。他们每个人都可以有自己的路线设置。
标签: c# routing .net-core-3.0 asp.net-core-3.0