有几个“要求”:
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文件?一个工作的例子将不胜感激。
答案 0 :(得分:1)
b)视图的路径。
如果您知道视图的路径,则可以阅读其内容:
string viewPath = "...";
string template = File.ReadAllText(viewPath);
然后正如文档所述,您可以使用Razor Engine传递模型和视图内容以获取标记:
string result = Razor.Parse(template, new { Name = "World" });