我如何在剃刀页面中使用经典的 MVC 路由?
How can i use classic MVC routing in razor pages?
我已将类别页面中的 url 设置为
<a href="/Shared/product/@p.Id">
</a>
我的产品页面实际存在于 Shared 目录中。
视图的页面指令设置为
@page "/product/{id}"
OnGet 方法为
public void OnGet(int id)
{
}
为什么我会收到 404 错误?我该如何解决这个问题?
我想将 url 生成为 /product/1
例如
我试过将 url 设置为
<a href="/product/@p.Id">
</a>
但我也得到 404
您已覆盖页面 (https://www.learnrazorpages.com/razor-pages/routing#override-routes) 的默认路径,该路径是从其文件路径(根于 Pages 文件夹)生成的。将模板更改为“{id}”,仅代表路由参数。文件路径 (/shared/product) 已经匹配您想要的路径。
如果您不希望 URL 匹配页面的文件路径,您应该只覆盖路由。
顺便说一句,MVC 或 Razor Pages 应用程序中的共享文件夹仅适用于部分和布局文件,而不适用于页面。
我已将类别页面中的 url 设置为
<a href="/Shared/product/@p.Id">
</a>
我的产品页面实际存在于 Shared 目录中。
视图的页面指令设置为
@page "/product/{id}"
OnGet 方法为
public void OnGet(int id)
{
}
为什么我会收到 404 错误?我该如何解决这个问题?
我想将 url 生成为 /product/1
例如
我试过将 url 设置为
<a href="/product/@p.Id">
</a>
但我也得到 404
您已覆盖页面 (https://www.learnrazorpages.com/razor-pages/routing#override-routes) 的默认路径,该路径是从其文件路径(根于 Pages 文件夹)生成的。将模板更改为“{id}”,仅代表路由参数。文件路径 (/shared/product) 已经匹配您想要的路径。
如果您不希望 URL 匹配页面的文件路径,您应该只覆盖路由。
顺便说一句,MVC 或 Razor Pages 应用程序中的共享文件夹仅适用于部分和布局文件,而不适用于页面。