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

ASP.Net Core Razor Pages页面加载时OnGet()未调用,求类初始化方案

ASP.NET Core Razor Pages OnGet() 未调用排查方案
  • 确认页面与PageModel绑定
    检查Index.cshtml顶部是否添加了正确的@model指令:

    @model SafetyApp.Pages.IndexModel
    

    缺少该指令会导致页面无法关联后台的IndexModel,OnGet()自然不会触发。

  • 验证依赖注入配置
    确保在Program.cs(.NET 6+)或Startup.cs中已注册SafetyService:

    // Program.cs示例
    builder.Services.AddScoped<SafetyService>();
    

    未注册服务会导致构造函数注入失败,页面初始化异常,间接阻止OnGet()执行。

  • 检查OnGet方法签名
    当前public void OnGet()签名合法,但可临时修改为带返回值的形式排查:

    public IActionResult OnGet()
    {
        var inspectionType = _safety.GetInspectionType();
        return Page();
    }
    

    同时确认没有重载的OnGet方法(如OnGetAsync)导致路由匹配冲突。

  • 排查路由与访问路径

    • 确认访问路径正确:默认情况下,Index页面可通过根路径(/)或/Index访问。
    • 检查IndexModel上是否存在[Route]属性,自定义路由可能导致路径不匹配。
  • 调试与日志排查

    • 在构造函数和OnGet()开头添加断点,确认构造函数是否执行:若构造函数未进入,优先排查依赖注入或页面绑定问题;若构造函数执行但OnGet()未触发,检查请求类型(页面加载应为GET)或路由配置。
    • 查看浏览器网络请求状态,若返回404/500,对应排查路由或服务异常;查看控制台是否有JS错误影响页面加载。
  • 检查过滤器与中间件
    排查是否存在自定义IPageFilter、IAsyncPageFilter或全局中间件,是否在OnGet()执行前拦截了请求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 23:37:33