有没有办法使用实际的MVC视图和模型来创建一个Html文件?

时间:2013-11-10 09:19:44

标签: c# asp.net-mvc razor razorengine

有几个“要求”:

1)应用程序必须从剃刀标记生成静态HTML文件。

2)实现(1)的控制器需要使用已在应用中定义的视图和模型。

我知道RazorEngine可以将一个简单的模板和一个模型组合成一个包含Html的字符串:

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

文档没有多说,但这里的问题是这还不够。我希望Parse方法接受:

a)控制器已知的视图名称或

b)视图的路径。

有没有办法使用实际的MVC视图和模型来创建Html文件?一个工作的例子将不胜感激。

1 个答案:

答案 0 :(得分:1)

  

b)视图的路径。

如果您知道视图的路径,则可以阅读其内容:

string viewPath = "...";
string template = File.ReadAllText(viewPath);

然后正如文档所述,您可以使用Razor Engine传递模型和视图内容以获取标记:

string result = Razor.Parse(template, new { Name = "World" });