razor-pages - Razor Pages:在链接中传递查询参数
问题描述
我在剃须刀页面中尝试过:
<div>
@foreach (var cat in Model.Categories)
{
<a asp-page="/Index?catId=@cat.Id">@cat.Name</a>
}
</div>
在cs文件中:
public void OnGet()
{
CurPage = 1;
CatId = -1;
Search = "";
HasCarousel = false;
Title = "All Products";
var queryParams = Request.Query;
foreach(var qp in queryParams)
{
if (qp.Key == "curPage") CurPage = int.Parse(qp.Value);
if (qp.Key == "catId") CatId = int.Parse(qp.Value);
if (qp.Key == "search") Search = qp.Value;
if (qp.Key == "hasCarousel") HasCarousel = bool.Parse(qp.Value);
}
但是当我单击链接时,地址中没有添加任何查询参数,并且 Request.Query 为空。我究竟做错了什么?或者通过链接将查询参数传递给剃须刀页面的正确方法是什么?
解决方案
要将查询参数添加到您的链接,您可以asp-route-
在a
标签中使用。在你的情况下,它看起来像
<a asp-page="Index" asp-route-catId="@cat.Id">@cat.Name</a>
您还使在 OnGet() 中接收查询参数变得比必须的更难。您可以将参数添加到您的方法签名中,例如
OnGet(int catId)
它们将由查询参数传入。
推荐阅读
- flutter - Google 认证和 Facebook 认证现有用户
- python - 基于变量动态构建字典
- react-native - 如何在 React Native 中的 DateTimePicker 上传输参数?
- reactjs - 如何访问嵌套导航器以及如何正确设置身份验证流程
- android - Android 11 应用程序在以空指针异常打开时崩溃
- spring - 本机查询的 Spring 数据投影未映射到接口
- flutter - Flutter TextField在键盘上溢出底部
- c++ - 编译g ++时未链接实现文件
- image - DeepSort + Volov5算法的数据生成方法
- php - PHP 速记 if echo else assign variable