C# Razor page:为什么第一个参数为null
我有一个简单的页面,上面有一个交易列表。我正在尝试为它实现分页。我在页面模型中添加了以下方法:C# Razor page:为什么第一个参数为null,c#,asp.net-core,razor,C#,Asp.net Core,Razor,我有一个简单的页面,上面有一个交易列表。我正在尝试为它实现分页。我在页面模型中添加了以下方法: public async Task OnGetAsync(int? page, int? rows) { //The logic } 当我通过URL调用此方法时: /transactions 它按预期工作:页面和行都等于null 但是,如果我尝试通过以下URL调用此方法: /transactions?page=3&rows=2 行数等于2,但页面为空。这对我来说很奇怪。 为什么它
public async Task OnGetAsync(int? page, int? rows)
{
//The logic
}
当我通过URL调用此方法时:
/transactions
它按预期工作:页面和行都等于null
但是,如果我尝试通过以下URL调用此方法:
/transactions?page=3&rows=2
行数等于2,但页面为空。这对我来说很奇怪。
为什么它是这样工作的?
我知道我可以创建一个属性并从请求中使用它:
[BindProperty(SupportsGet = true)]
public int CurrentPage { get; set; }
但是我想知道为什么page参数有空值,如果可能的话可以使用它。单词“page”在asp.net/razor中是保留的,不能直接用作方法的参数 要解决我的问题,我必须使用:
public async Task OnGetAsync([FromQuery] int? page, int? rows)
页面是一个保留字吗?我使用一个3d party网格进行分页,它使用这个符号进行分页:页面和行。所以,我们可以说“page”是一个保留字。看看这个:我指的是asp.net/Razor中的保留字。它不是保留字,但在基类PageModel中有一个page属性。