gpt4 book ai didi

asp.net-mvc - 在 MVC 6 中从 DB 渲染 View

转载 作者:行者123 更新时间:2023-12-01 16:29:43 25 4
gpt4 key购买 nike

我们正在处理 ASP.NET MVC 6 项目,并且有必要从文件系统源(尤其是 Azure Blob 存储,但它并不重要)以外的其他源呈现 Razor View 。
早期(在 MVC 5 中)可以创建和注册自定义 VirtualPathProvider,它可以从 DB 或资源 DLL(例如)获取 View 内容。

似乎这种方法在 MVC 6 中已经改变了。有人知道去哪里找吗?

更新:
这是我正在寻找的代码示例:

   public IActionResult Index()
{

ViewBag.Test = "Hello world!!!";
string htmlContent = "<html><head><title>Test page</title><body>@ViewBag.Test</body></html>";

return GetViewFromString(htmlContent);
}

问题是:如何实现 GetViewFromString功能?

最佳答案

您需要配置一个 ViewLocationExpander:

services.SetupOptions<RazorViewEngineOptions>(options =>
{
var expander = new LanguageViewLocationExpander(
context => context.HttpContext.Request.Query["language"]);
options.ViewLocationExpanders.Insert(0, expander);
});

这是 LanguageViewLocationExpander 的实现:
https://github.com/aspnet/Mvc/blob/ad8ab4b8fdb27494f5dece6f1186acea03f9dd52/test/WebSites/RazorWebSite/Services/LanguageViewLocationExpander.cs

基于您的 AzureBlobLocationExpander在那一个应该把你放在正确的轨道上。

关于asp.net-mvc - 在 MVC 6 中从 DB 渲染 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29500530/

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