c# - 剃刀页面:为什么第一个参数为空
问题描述
我有一个带有交易列表的简单 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 参数有一个空值,如果可能的话就使用它。
解决方案
'page' 这个词在 asp.net/razor 中是保留的,不能直接用作方法的参数。
为了解决我的问题,我不得不使用:
public async Task OnGetAsync([FromQuery] int? page, int? rows)
推荐阅读
- android - 如何在 PageView 中有不同大小的页面?
- javascript - Discord.js 嵌入命令
- python - 寻找共同的价值,聚在一起
- javascript - Discord.js 命令处理 - 变量问题
- python - 水果机GSCE挑战
- docker - 无法挂载 3 层深的卷(在大多数发行版上)
- python - 算法:IndexError:列表索引超出范围(Python)
- c++ - 为什么需要在索引中添加“0”才能访问数组值?
- swift - 是否只能使用 UITableViewController 使用两指平移手势选择多个项目?
- flutter - Flutter for Firestore 中的 Streambuilder