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

.NET Core Razor Pages中GET请求时Display Template页面Model为Null

问题分析与解决方案

问题根源

你的OnGet方法存在变量遮蔽错误:方法内部重新声明了局部变量UserEditSP,导致你实际是在创建一个仅在方法内部生效的局部实例,而非给页面模型类的同名属性赋值。方法执行完毕后局部变量被销毁,页面模型的UserEditSP属性自然保持为null。

修复代码

修改OnGet方法,移除局部变量声明,直接操作模型的属性:

public IActionResult OnGet()
{
    // 直接为模型属性赋值,不再声明局部变量
    UserEditSP = new UserEditSP();
    UserEditSP.NewPassword = "NewPwd";

    StringTest = "Test";

    return Page();
}

补充说明

  • [BindProperty]特性负责POST请求的表单数据绑定,所以POST场景下属性能正常获取值,但GET请求需要手动初始化模型属性。
  • 你的OnPost方法同样存在变量遮蔽问题,只是POST请求的模型绑定会覆盖局部变量的影响,导致你误以为功能正常。建议同步修复OnPost方法以保持代码一致性:
public IActionResult OnPost()
{
    UserEditSP = new UserEditSP();
    UserEditSP.NewPassword = "NewPwd";

    StringTest = "Test";

    return Page();
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 18:32:02