一尘不染

如何在ASP.NET MVC 3中将Razor View呈现为字符串?

c#

我一直在搜索该站点很多,但是我所能找到的只是有关如何呈现部分控件.ascx或依赖于控制器上下文的示例。

我想要一个方法,使我能够仅提供视图的相对路径和模型,并将具有该模型的视图呈现为字符串:

string result = Utility.RenderViewToString("~/Views/My/Profile.cshtml", model);

我能找到的所有示例要么是针对旧版本的MVC,要么就是根本没有执行我在这里需要做的事情。


阅读 256

收藏
2020-05-19

共1个答案

一尘不染

您可以使用razorengine实现这一目标

string template = "Hello @Model.Name! Welcome to Razor!";
string result = Razor.Parse(template, new { Name = "World" });

而且它不依赖于控制器上下文-但是由于这个原因,您不能使用Html帮助器(依赖于http上下文)。但是,将剃刀用作字符串的模板引擎是完美的。

2020-05-19