如何在asp.net核心剃须刀页面中处理路由?

时间:2020-04-17 15:49:38

标签: c# asp.net asp.net-mvc asp.net-core razor-pages

我有两个页面Home.cshtml和Job.cshtml

在启动文件中,我对此进行管理

services.AddRazorPages().AddRazorPagesOptions(options =>
        {              
            options.Conventions.AddPageRoute("/Home", "/{handler?}");
        });


services.AddRazorPages().AddRazorPagesOptions(options =>
            {
                options.Conventions.AddPageRoute("/Job", "{*url}");
            });

我想为Home.cshtml打开此URL

http://localhost:44004/au/hospital-jobs-in-India

第二个URL是我要在Job.cshtml中打开它

http://localhost:44004/best-jobs-in-India/Page-3/NewsData

注意:现在我的问题是,对于这两个网址,它都击中了Job.cshtml 但我想打分开的页面。

1 个答案:

答案 0 :(得分:0)

您应该了解Razor页面中的friendly routes是什么。作为您当前的路由模板,/au/au/将映射到Home页面,它的应用程序会捕获任何未映射到物理文件的URL,而/au/hospital-jobs-in-India将映射到Job页面,因为该路线与第一个友好路线不匹配,但与{*url}路线模板匹配。您应该根据自己的要求修改路由,例如,更改第一个路由模板,例如/au/{handler?}

此外,您不需要多次注册AddRazorPages,可以在一个AddPageRoute中直接添加多个AddRazorPagesOptions