Razor Pages 7提交表单时如何保留排序、分页等参数?
Razor Pages 7 筛选、排序与分页的参数绑定问题
我正在使用Razor Pages 7开发包含筛选、排序和分页功能的页面,MyPage.cshtml.cs中定义了以下属性与方法:
public SelectList Products { get; set; } public int Sort { get; set; } public int Page { get; set; } public int Filter { get; set; } public async Task OnGetAsync(int sort, int page, int filter) { //... }
MyPage.cshtml中的表单代码如下:
<form method="get" asp-page="" asp-route-sort=@Model.Sort asp-route-page=@Model.Page> <select name="filter" asp-items=@Model.Products> <option selected value="0">按产品筛选</option> </select> <input type="submit" value="提交" /> </form>
表单渲染后的HTML符合预期:
<form method="get" action="/mypage?sort=10&page=3"> ... </form>
但提交表单时,GET请求仅能绑定filter参数,sort和page参数无法从表单的action URL中完成绑定。我想知道Razor Pages是否提供原生方式实现这些参数的绑定?(我可以用JavaScript实现,但希望采用Razor Pages原生方案。)
更新:我发现可以通过添加隐藏输入框实现,在表单中加入:
<input type="hidden" name="sort" value=@Model.Sort /> <input type="hidden" name="page" value=0 /> <!-- 切换筛选时重置页码 -->
但这是手动实现方式,存在大量硬编码的魔术字符串,有没有Razor Pages原生的实现方式?
内容的提问来源于stack exchange,提问作者lonix
相关产品推荐
相关产品推荐

