我想知道是否有一种方法可以实例化一个对象或调用一个实用程序函数,该函数将简单地将一个对象以及可能是视图的路径作为参数,并返回一个包含{{1 }},将对象用作rendered view
。
我不想经历通常的model
请求管道,也不想处理ASP.NET
,甚至不想依靠运行的框架来提供一堆服务。
我只是想要一种简单的方法来将视图呈现为代码中的字符串。
这存在吗?
如果任何人都知道dependency injection
中的视图渲染如何在幕后工作,那么这也将很有帮助。
答案 0 :(得分:2)
是的。我在我的一个项目中做到了这一点。我从这里偷走了ViewRenderer
类:https://github.com/RickStrahl/WestwindToolkit/blob/master/Westwind.Web.Mvc/Utils/ViewRenderer.cs
您可以安装Westwind.Web.Mvc
NuGet package,也可以按照我的方式进行操作,然后将类复制到您的项目中。
您可以这样使用它:
var r = new ViewRenderer();
var viewAsString = r.RenderViewToString("~/Views/MyView.cshtml");
您可以选择在模型中传递第二个参数。
以下是作者的博客文章,描述了其工作方式:https://weblog.west-wind.com/posts/2012/May/30/Rendering-ASPNET-MVC-Views-to-String