问题描述
我有 VS 2019 Pro 并使用 .net 5 和 C# 9。我使用 ASP.NET Core Web App(没有 MVC)模板创建了一个项目。我收到 C0103 错误“当前上下文中不存在名称‘ViewBag’。”这是摘录index.cshtml.cs代码:
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.Extensions.Caching.Memory;
using Microsoft.Extensions.Options;
using ARTS.Client_Models;
using ARTS.Models;
using repository;
:
:
public IActionResult OnGet()
{
this.VM = new home_VM(this._app_settings);
ViewBag.User = new User();
return Page();
}
我开始怀疑是不是因为我没有使用MVC?如果是,为什么?
解决方法
Razor 页面不支持 ViewBag,它需要外部包 Microsoft.AspNetCore.Mvc.ViewFeatures
。但是 ViewData 包含在 Razor 页面中,因此将其替换为 ViewData 是更好的方法。
ViewData["User"] = new User();
如果一定要使用ViewBag,可以参考这个answer。