You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Razor Pages点击跳转后FindAsync不执行仅刷新URL才加载数据

问题原因
  • 你列表页的Kopen按钮被包裹在method="post"的表单标签内,button元素默认的type属性为submit,点击时会默认发起POST请求到目标页面,而你BestellenModel中只有处理GET请求的OnGet方法,因此点击按钮时不会触发数据查询逻辑。
  • 手动刷新地址栏时浏览器发起的是GET请求,匹配到OnGet方法,因此数据可以正常加载。
解决方案

优先推荐修改列表页的跳转方式,将按钮改为超链接(页面跳转场景使用超链接更符合HTTP语义):
找到列表页Index.cshtml中Kopen按钮的代码:

<button asp-page="Bestellen" asp-route-id="@item.Id" class="btn btn-primary btn-sm">Kopen</button>

替换为:

<a asp-page="Bestellen" asp-route-id="@item.Id" class="btn btn-primary btn-sm">Kopen</a>

如果需要保留button元素,也可以为按钮指定提交方式为GET:

<button asp-page="Bestellen" asp-route-id="@item.Id" formmethod="get" class="btn btn-primary btn-sm">Kopen</button>
额外优化建议
  1. 你贴出的BestellenModel代码末尾多了一个多余的闭合大括号},请删除避免编译错误。
  2. 建议为OnGet方法增加空值判断,避免查询不到数据时出现空引用异常:
public async Task<IActionResult> OnGet(int id)
{
    Bedrijven = await _db.Bedrijven.FindAsync(id);
    if (Bedrijven == null)
    {
        return NotFound();
    }
    return Page();
}

内容的提问来源于stack exchange,提问作者Marnix Bolier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 20:45:02