在Razor Pages中定义一个带有根值和slug的路由



我想创建一个具有根值和段值的链接。像这样:

http://localhost: 5001/页面/rootValue吗?蛞蝓= 1

我该怎么做呢?

我写的标签如下:

<a asp-page="./ProductCategory" asp-route-id="@category.Slug" asp-route-page="1">@category.Name</a>

我希望得到以下输出:

http://localhost: 5001/productCategory/汽车吗?= 1页

但在实际操作中,段塞值并没有被接收。

我所做的其他事情是在目标页面中获取id rootvalue:

@page {id}
在目标页面模型中,获取URL值:
OnGet(string id, int page)

但是,当我运行程序时,鼻涕条值(页面)为零,页面没有加载。

我必须在StartUp.cs文件中输入路由吗?就像MVC模型中的MapRoute方法一样,Razor Pages是否也有类似的方法?

与路由模板参数同名并映射到URL段的路由值。其他路由值作为查询字符串值添加到URL中。

在下面的示例中,您有一个名为category的参数。这将显示为一个片段:

@page "{category}"

asp-route-category属性指定"rootValue作为类别参数值:

<a asp-page="SomePage" asp-route-category="rootValue" asp-route-slug="my-slug-value">Click</a>

asp-route-slug属性没有匹配的参数,因此将作为查询字符串值添加,结果为

SomePage/rootValue?slug=my-slug-value

您可以使用BindProperty属性将URL值绑定到PageModel上的公共属性:

[BindProperty(SupportsGet=true)]
public string Category { get; set; }
[BindProperty(SupportsGet=true)]
public string Slug { get; set; }

更多来自我的网站:

  • url和路由:https://www.learnrazorpages.com/razor-pages/routing
  • 模型绑定:https://www.learnrazorpages.com/razor-pages/model-binding

最新更新