c# - 如何处理 asp.net core razor 页面中的路由?
问题描述
我有两页 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,但我想点击单独的页面。
解决方案
您应该了解Razor 页面中的友好路由是什么。作为您当前的路由模板,/au
并将/au/
映射到Home
页面它应用程序捕获任何不映射到物理文件的 URL,/au/hospital-jobs-in-India
并将映射到Job
页面,因为该路由不匹配第一个友好路由,但它匹配{*url}
路由模板。您应该根据您的要求修改路由,例如,更改第一个路由模板/au/{handler?}
。
另外,您不需要AddRazorPages
多次注册,可以直接AddPageRoute
在一个里面添加多个AddRazorPagesOptions
。
推荐阅读
- rust - 如何在 Rust 中为终端设置动画
- php - 使用新格式图像从 AJAX 调用 PHP 上的特定函数
- php - PHP SQL Server 安全方法 - 哪个更好?
- javascript - Javascript Array String Word Wrap Problem --- 字符串的排列顺序和给定的数组长度
- kubernetes - EKS,Windows 节点。网络插件 cni 失败
- r - 在 r 中的 ggplot 中的地图中心添加点
- reactjs - 由于 CSSReset - Chakra-ui,Markdown 无法正确显示
- c++ - 如何在 C++ 中等待线程退休?
- node.js - 如何从 Nest.js 连接到 Heroku Postgres?
- wso2 - WSO2 APIM 代币兑换