【问题标题】:how to handle routing in asp.net core razor page?如何处理 asp.net core razor 页面中的路由?
【发布时间】:2020-04-17 15:49:38
【问题描述】:

我有两个页面 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

第二个网址是我想在 Job.cshtml 中打开它

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

注意:现在我的问题是,对于这两个 url,它都命中了 Job.cshtml 但我想点击单独的页面。

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2019-05-22
      • 2020-05-06
      • 2018-01-31
      • 2020-05-06
      • 2018-11-14
      • 1970-01-01
      • 2018-12-04
      • 2021-05-29
      • 2020-05-25
      相关资源
      最近更新 更多