我需要一个WPF应用程序来填充HTML模板(理想情况下像MVC项目一样)。我怎样才能做到这一点?

时间:2013-06-27 10:38:59

标签: c# wpf asp.net-mvc

我正在处理需要填充HTML模板并将其保存到磁盘的WPF应用程序。

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

不幸的是,我不能保证上网,所以我无法在远程服务器上托管它,并且也无法保证本地网络服务器,所以我无处可以托管它

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

或者我应该采取不同的方法?

1 个答案:

答案 0 :(得分:1)

解决方案是使用RazorEngine

E.g:

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&剃刀代码:

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

viewModel只是一个定义为

的匿名对象
var anonObj = new
{
    Age = 10,
};

Razor.Parse()可以解析templateName的内容,并用HTML中的值替换内联C#。