通过Ajax调用Razor Pages方法失败,仅触发OnGet()方法
问题原因与解决方法
核心问题:Razor Pages的命名规则限制
Razor Pages对GET请求的自定义处理方法有严格的命名约定——必须以OnGet作为前缀,你的方法名SearchCityState不符合这个规则,所以框架无法识别它对应handler=SearchCityState的请求,最终默认执行了页面的OnGet()方法。
具体解决步骤
修改方法命名
将目标方法重命名为OnGetSearchCityState,参数保持不变:public async Task<IActionResult> OnGetSearchCityState(string cityTerm) { // 你的业务逻辑代码 }验证请求URL
原请求URLhttps://localhost:7100/?handler=SearchCityState&cityTerm=Det无需修改,因为handler参数的值对应方法名中OnGet之后的部分,框架会自动匹配到修改后的OnGetSearchCityState方法。额外检查项
- 确认页面模型类已继承
PageModel(默认模板生成的类已包含此继承)。 - 如果需要向AJAX返回JSON数据,在方法中使用
return Json(...)这类返回语句,确保响应格式符合前端需求。
- 确认页面模型类已继承
内容的提问来源于stack exchange,提问作者user441521
相关产品推荐
相关产品推荐

