gpt4 book ai didi

asp.net-mvc-3 - 从数据库加载 Razor View ,但 ViewBag 已损坏

转载 作者:行者123 更新时间:2023-12-02 14:37:13 24 4
gpt4 key购买 nike

我正在从数据库中提取 Razor View 的标记,如本问题所述:

ASP.NET MVC load Razor view from database

我可以拉取 View ,但执行失败,因为 ViewBag 无法识别。

CS0103:当前上下文中不存在名称“ViewBag”

有什么建议吗?

来源如下:

全局:

protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
System.Web.Hosting.HostingEnvironment.RegisterVirtualPathProvider(new BearForce.Web.Core.DbPathProvider());
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}

我的路径提供者:

namespace BearForce.Web.Core
{
public class DbPathProvider : VirtualPathProvider
{
public DbPathProvider()
: base()
{

}

public override bool FileExists(string virtualPath)
{
var repo = new Repository();

var viewPage = repo.GetView(240, virtualPath);

if (base.FileExists(virtualPath))
{
return true;
}

if (viewPage != null)
{
return true;
}

return false;

}

public override VirtualFile GetFile(string virtualPath)
{
if (base.FileExists(virtualPath))
{
return base.GetFile(virtualPath);
}

var repo = new Repository();
var result = repo.GetView(240, virtualPath);

var vf = new DbVirtualFile(virtualPath, result.Markup);
return vf;
}


}
}

我的虚拟文件:

  public class DbVirtualFile : System.Web.Hosting.VirtualFile
{
string _fileContents = string.Empty;
public DbVirtualFile(string path, string fileContents)
: base(path)
{
_fileContents = fileContents;
}

public override System.IO.Stream Open()
{
return new System.IO.MemoryStream(System.Text.ASCIIEncoding.ASCII.GetBytes(_fileContents));
}
}

我的 Controller :

  public ActionResult Index()
{
ViewBag.Title = "aaah!!! Muppets!!! Help!!!!!";

return View();
}

显然,这是一个概念证明,所以名称都很愚蠢,代码也很草率......

最佳答案

对于将来遇到此错误的人,如果您的 View 和根项目文件夹中缺少 web.config 文件,您可能会收到此确切的错误。

关于asp.net-mvc-3 - 从数据库加载 Razor View ,但 ViewBag 已损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5159314/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com