如何解决剃刀页面:在链接中传递查询参数
我在剃刀页面尝试过:
<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)
,它们将通过查询参数传递。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。