首页 > 解决方案 > 剃刀页面:为什么第一个参数为空

问题描述

我有一个带有交易列表的简单 Razor 页面。我正在尝试为它实现分页。我在页面模型中添加了以下方法:

public async Task OnGetAsync(int? page, int? rows)
{
    //The logic
}

当我通过 URL 调用此方法时:

/transactions

它按预期工作:页和行都等于空。

但是,如果我尝试通过以下 URL 调用此方法:

/transactions?page=3&rows=2

行数等于 2,但页面为空。这对我来说看起来很奇怪。为什么它会这样工作?我知道我可以创建一个属性并从请求中使用它:

[BindProperty(SupportsGet = true)]
public int CurrentPage { get; set; }

但我想知道为什么 page 参数有一个空值,如果可能的话就使用它。

标签: c#asp.net-corerazor

解决方案


'page' 这个词在 asp.net/razor 中是保留的,不能直接用作方法的参数。

为了解决我的问题,我不得不使用:

public async Task OnGetAsync([FromQuery] int? page, int? rows)

推荐阅读