我是否需要 services.AddMvc ?

Che*_*ven 4 asp.net-core

我试图找出为什么在我看到的所有文档services.AddMvcservices.AddMvcCoreStartup.cs 中,但在由 VS 创建的 ASP.NET Core MVC 3.1 模板中,我没有 AddMvc 但 mvc 仍然有效......

我唯一与 MVC 相关的是

app.UseEndpoints(endpoints =>
{
    endpoints.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
    endpoints.MapRazorPages();
});
Run Code Online (Sandbox Code Playgroud)

谁能解释为什么?

Rya*_*yan 6

正如文档所说,asp.net core 3.0+ 模板使用这些新方法AddControllersWithViews, AddRazorPages,AddControllers而不是AddMvc.

但是,AddMvc它的行为仍与以前版本中的一样。AddMvc()实际上只是一堆注册服务的其他方法的包装器。见来源:

https://github.com/aspnet/AspNetCore/blob/0303c9e90b5b48b309a78c2ec9911db1812e6bf3/src/Mvc/Mvc/src/MvcServiceCollectionExtensions.cs#L27

您可以使用AddMvc注册 MVC、Razor 页面、API 或使用个人AddControllersWithViews(仅适用于 MVC)和AddRazorPages(仅适用于 Razor 页面)。


Man*_*ish 0

我认为您看到的所有文档都是针对 .net core 2.* 的。
欲了解更多信息-> https://learn.microsoft.com/en-us/aspnet/core/migration/22-to-30?view=aspnetcore-2.2&tabs=visual-studio