我需要一个 WPF 应用程序来填充 HTML 模板(理想情况下,就像 MVC 项目一样).我该怎么做
本文关键字:就像 情况下 MVC 理想 项目 我该怎么做 模板 一样 填充 一个 WPF | 更新日期: 2023-09-27 18:20:03
我正在开发一个需要填充HTML模板并将其保存到磁盘的WPF应用程序。
理想情况下,我可以使用 MVC 项目来执行此操作,例如定义一个视图并将视图模型传递给它,然后将输出写入 FileStream 而不是 Response 流。
不幸的是,不能保证互联网访问,所以我不能在远程服务器上托管它,也不能保证本地 Web 服务器,所以我无处托管它。
有什么方法可以在 WPF 中执行此操作或让 MVC 项目(我可以从 WPF 解决方案中引用(在 Web 服务器的上下文之外工作?
还是我应该采取不同的方法?
解决方案是使用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
是一个包含以下 Html 和 Razor 代码的.cshtml
文件:
<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 中的值。