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

.NET Razor页面Model值绑定不显示问题求助

解决Razor页面@Model绑定值不显示的问题

以下是几个必查的关键点,按优先级排序:

1. 修正OnGet方法的大小写

Razor页面的生命周期方法要求PascalCase命名,小写的onGet不会被.NET框架自动调用,导致Heading属性从未被赋值。

错误代码:

public void onGet() // 小写开头,框架不识别
{
    Heading = "James Bond Actors";
}

修正后:

public void OnGet() // 首字母大写,框架会自动执行
{
    Heading = "James Bond Actors";
}

2. 确保Heading属性是public

如果Heading的访问修饰符是private或protected,Razor页面无法访问该属性,导致绑定为空。

正确的属性定义:

public class IndexModel : PageModel
{
    // 必须是public才能被Razor页面访问
    public string Heading { get; set; }

    public void OnGet()
    {
        Heading = "James Bond Actors";
    }
}

3. 确认Razor页面的@model指令正确

检查.cshtml文件顶部的@model指令,是否正确引用了你的PageModel类(包括命名空间)。

示例(假设PageModel在YourProjectName.Pages命名空间下):

@page
@model YourProjectName.Pages.IndexModel

<h1>@Model.Heading</h1>

4. 验证PageModel与Razor页面的文件名匹配

确保PageModel类的文件名是[页面名].cshtml.cs,比如Razor页面是Index.cshtml,对应的代码文件必须是Index.cshtml.cs,且类名为IndexModel(继承自PageModel)。

完成以上检查后,重新执行dotnet build和dotnet run,页面应该能正常显示绑定的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 06:10:31