【发布时间】:2021-10-31 03:58:55
【问题描述】:
我有一个 RazorPages 应用程序,它的索引页有一个项目列表。我希望此页面仅显示列表的 50 个元素并决定使用 GET 参数显示哪些项目,例如,如果我将 ?page=2 传递给页面,它必须显示从 51 到 100 的元素
正如我所发现的,我可以像这样在OnGet 中处理这种类型的请求:
public void OnGet(int page)
但是当我打开页面时 - OnGet 中的 page 参数始终为 0,即使我通过 '?page=2' 或类似的东西
我也尝试使用 string 而不是 int 并且总是得到“/Index”
在 OnGet 中处理这些参数的正确方法是什么?
【问题讨论】:
-
你的路线模式是什么? (通常在
Configure中定义Startup.cs) -
我刚刚检查了 Startup.cs 并没有找到与路由模式相关的任何内容。我是 RazorPages 新手,可能不知道什么是路由模式
-
看看this page。
-
我将
@page的行更改为@page "{pageNumber:int?}",并将OnGet 更改为OnGet(int pageNumber)。现在,如果我指定 urllocalhost/2- OnGet 中的 pageNumber 为 2。这并不是我真正需要的,但我会使用它。我想我几乎解决了我的问题,我只需要在@page之后以某种方式更改该字符串 -
不能使用“page”作为参数。我经过惨痛的教训才学到这个。有关解决方法,请参阅@Serge 答案。
标签: c# asp.net-core .net-core razor-pages