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

通过Ajax调用Razor Pages方法失败,仅触发OnGet()方法

问题原因与解决方法

核心问题:Razor Pages的命名规则限制

Razor Pages对GET请求的自定义处理方法有严格的命名约定——必须以OnGet作为前缀,你的方法名SearchCityState不符合这个规则,所以框架无法识别它对应handler=SearchCityState的请求,最终默认执行了页面的OnGet()方法。

具体解决步骤

  1. 修改方法命名
    将目标方法重命名为OnGetSearchCityState,参数保持不变:

    public async Task<IActionResult> OnGetSearchCityState(string cityTerm)
    {
        // 你的业务逻辑代码
    }
    
  2. 验证请求URL
    原请求URLhttps://localhost:7100/?handler=SearchCityState&cityTerm=Det无需修改,因为handler参数的值对应方法名中OnGet之后的部分,框架会自动匹配到修改后的OnGetSearchCityState方法。

  3. 额外检查项

    • 确认页面模型类已继承PageModel(默认模板生成的类已包含此继承)。
    • 如果需要向AJAX返回JSON数据,在方法中使用return Json(...)这类返回语句,确保响应格式符合前端需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 12:12:01