创建没有网络的剃刀视图

时间:2013-01-22 17:28:35

标签: asp.net-mvc razor asp.net-mvc-4

我们目前正在使用产品发送电子邮件,并且是通过定期运行的许多可执行文件执行此操作。此产品对动态数据的处理非常有限,因此如果我们需要列表中的表,我们必须在C#代码中创建表并将HTML作为单个变量发送,这会导致我们在配置文件中包含HTML。

一位同事看到this type of thing并认为我们可以使用它。所以我正在尝试开发一个在可执行文件中创建视图并将其转换为字符串的概念验证(然后我们将在电子邮件产品之外开发我们的电子邮件,并将整个内容作为单个字符串发送。< / p>

我的问题是:

1)有没有更好的方法呢?引入MVC框架肯定不是它的目的。如果有另一种产品可以满足我们的需求(允许我们轻松创建动态电子邮件),这种产品易于使用且更适合,那就太棒了。

2)我应该伪造所有数据吗?如果我创建假的http上下文和所有爵士乐,我可以让它做我想要的。

3)是否有更简单的方法将视图转换为字符串,基于ViewModel?

1 个答案:

答案 0 :(得分:3)

如果您根本不需要使用HTTP,则只需使用RazorEngine项目直接从C#运行Razor引擎 - 有一个很棒的项目可以让您这样做 - https://github.com/Antaris/RazorEngine

它允许您将Razor用作通用模板引擎(而不是MVC特定的)。

GitHub的简单示例:

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

或者,如果您仍希望通过HTTP访问它,您可以使用ASP.NET Web API以非常轻量级的方式相对轻松地完成此操作 - 无需担心ASP.NET(因为您甚至可以自己主持人)。

WebApiContrib已有一个Razor视图格式化程序 - https://github.com/WebApiContrib/WebApiContrib.Formatting.RazorViewEngine

相关问题