.AddMvc() 在 ASP.NET Core 3.0 中?

dea*_*t05 3 .net asp.net-core

我正在将 ASP.NET Core 2.2 Web 应用程序迁移到 3.0,并且有关于 .AddMvc() 的澄清问题。如果这很重要,我的应用程序使用 Razor 页面和视图。

所以目前,我在 2.2 代码中有以下内容:

services.AddMvc()
            .AddRazorPagesOptions(options =>
            {
                options.Conventions.ConfigureFilter(new IgnoreAntiforgeryTokenAttribute());
            })
           .SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
Run Code Online (Sandbox Code Playgroud)

迁移文件说,“AddMvc继续表现为它在以前的版本。” 但是,接着说以下内容“与 2.2 中的 .AddMvc() 相同”:

    services.AddControllers();
    services.AddRazorPages();
Run Code Online (Sandbox Code Playgroud)

因此,我的问题是,我应该使用哪一种?

我的方法是做这样的事情:

    services.AddControllersWithViews();
    services.AddRazorPages()
            .AddRazorPagesOptions(options =>
             {
                 options.Conventions.ConfigureFilter(new IgnoreAntiforgeryTokenAttribute());
              })
              .SetCompatibilityVersion(CompatibilityVersion.Version_3_0);
Run Code Online (Sandbox Code Playgroud)

这是正确的方法吗?

谢谢!

jmo*_*dyk 10

不,我相信您会在.AddRazorPages()通话中设置 Razor 页面选项,如下所示:

services.AddControllersWithViews();
services.AddRazorPages(options => 
{
    options.Conventions.ConfigureFilter(new IgnoreAntiforgeryTokenAttribute());
});
Run Code Online (Sandbox Code Playgroud)

我不确定这.SetCompatibilityVersion()是必要的,但根据 Intellisense,您可以将它挂在.AddControllersWithViews().AddRazorPages()呼叫中。