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

ASP.NET Core MVC中创建带模型的Razor页面时ViewData始终为空

ASP.NET Core MVC Admin页面ViewData为空问题排查

技术细节

  • VS Enterprise 2022 17.3.2
  • .NET 7
  • 项目类型:ASP.NET Core Web App MVC
  • 空测试项目,所有设置为默认值

项目配置

  • Controllers文件夹下存在AdminController,包含通过空控制器模板创建的默认方法public IActionResult Index()
  • Views文件夹下有Admin子文件夹,其中的Index Razor页面(基于空模板)代码如下:
@page
@model WebApplication1.Views.Admin.IndexModel
@{
    ViewData["Title"] = "Manage users";
}
  • 该页面对应的模型代码:
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;

namespace WebApplication1.Views.Admin
{
    public class IndexModel : PageModel
    {
        public IActionResult OnGet()
        {
            return Page();
        }
    }
}

问题现象

启动项目后访问localhost/Admin,出现错误:AspNetCoreGeneratedDocument.Views_Admin_Index.ViewData.get returned null

临时处理方式

需要在AdminController的public IActionResult Index()方法中手动设置ViewData["Title"] = "titlehere";才能正常访问,但这并非预期的正确实现方式,需寻求合理解决方案。

调试结果

  • 访问/Admin/Index时,ViewData为null
  • 访问/Index或/Home/Index(默认启动页)时,ViewData是有效对象
  • _Layout.cshtml对Admin子文件夹内的页面不生效,但对Home子文件夹的页面正常生效

已尝试的无效操作

  • 清理浏览器缓存及站点数据,无效果
  • 在Index.cshtml中手动指定Layout = "布局文件路径",无效,程序未读取该配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 21:30:12