1

我正在开发一个需要填充 HTML 模板并将它们保存到磁盘的 WPF 应用程序。

理想情况下,我可以使用 MVC 项目来执行此操作,例如定义一个 View 并将 ViewModel 传递给它,然后将输出写入 FileStream 而不是 Response 流。

不幸的是,不能保证可以访问互联网,所以我不能在远程服务器上托管它,也不能保证本地 Web 服务器,所以我无处托管它。

我有什么方法可以在 WPF 中执行此操作或让 MVC 项目(我可以从 WPF 解决方案中引用)在 Web 服务器的上下文之外工作?

还是我应该采取不同的方法?

4

1 回答 1

1

解决方案是使用RazorEngine

例如:

public static string RenderPartialViewToString(string templatePath, string templateName, object viewModel)
{
    string text = File.ReadAllText(Path.Combine(templatePath, templateName));


    string renderedText = Razor.Parse(text, viewModel);
    return renderedText;
}

在这种情况下,templateName是一个.cshtml包含以下 Html 和 Razor 代码的文件:

<div>        
    <h1>Age: @Model.Age</h1>
    <input type="button" value="Just a Sample Button" />
</div>

并且viewModel只是一个匿名对象,定义为

var anonObj = new
{
    Age = 10,
};

Razor.Parse()解析内容templateName并将内联 C# 替换为 HTML 中的值的神奇之处。

于 2013-06-28T08:46:54.580 回答