.net core 将ASP.NET Core Razor页面中的默认页面更改为登录页面

.net core 将ASP.NET Core Razor页面中的默认页面更改为登录页面,.net-core,razor-pages,.net Core,Razor Pages,我正在使用ASP.NET Core Razor页面将默认页面从/Home/Index更改为/Identity/Account/Login,但它总是将/Home页面作为默认页面加载 services.AddMvc() .SetCompatibilityVersion(CompatibilityVersion.Version_2_1) .AddRazorPagesOptions(options =>

我正在使用ASP.NET Core Razor页面将默认页面从/Home/Index更改为/Identity/Account/Login,但它总是将/Home页面作为默认页面加载

services.AddMvc()
                .SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
                .AddRazorPagesOptions(options =>
                {
                    options.Conventions.Clear();
                    options.AllowAreas = true;
                    options.Conventions.AddAreaPageRoute("Identity", "/Login", "/Identity/Account/Login");
                });

它应该加载登录页面模型作为默认页面。请帮我解决以上问题。等待您的快速响应。

AddAreaPageRoute的参数是
areaName
pageName
route

要将
Identity
区域中的默认页面设置为
/IdentityAccount/Login
,您必须调用

options.Conventions.AddAreaPageRoute("Identity", "/Identity/Account/Login", "");
如果要设置页面范围的默认页面,应调用

options.Conventions.AddPageRoute("/Identity/Account/Login", "");

默认页面位于route

要将站点的根目录映射到ASP.Net Core(v2.1及更高版本)中的
/Identity/Account/Login
页面,您可以按照以下说明操作:

  • 撤消在
    ConfigureServices()
    方法中所做的更改。(即,
    .AddRazorPagesOptions(…)

  • 将Login.cshtml模板文件顶部的
    @page
    声明更改为
    @page”/“

  • 如果还没有,请删除Index.cshtml和Index.cs页面文件

  • 第一步是清理

    步骤2是将登录配置为根路径
    /
    。(更多信息)


    步骤3是必要的,因为如果不删除索引页文件,它们将按照约定映射到根路径,并且将与步骤2中的更改冲突。当您浏览到根路径时,这将抛出一个模糊的MatchException。

    我尝试了这两个选项,但它仍然将主页作为默认页面而不是登录页面加载。如果看不到完整的项目,很难从这里判断。在浏览器地址栏中输入什么?您是否正在调用任何其他可能设置默认URL的API?@GKB尝试删除原始索引页。您使用常规路由还是属性路由?这是我使用.net core 3.1时的答案