2013-06-27 22 views
0

我正在研究需要填充HTML模板并将其保存到磁盘的WPF应用程序。我需要一个WPF应用程序来填充一个HTML模板(最好像一个MVC项目可以)。我怎样才能做到这一点?

理想我可以使用一个MVC项目要做到这一点,例如定义一个View并将ViewModel传递给它,然后将输出写入FileStream而不是Response流。

不幸的是有没有的互联网接入保证,所以我不能主持它在远程服务器上,而且也没有一个本地的Web服务器在保证,所以我无处可承载它。

有什么办法,我在WPF或得到一个MVC项目(即我可以从WPF的解决方法参考)发送到Web服务器的上下文之外的工作要做到这一点?

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

+1

你可以看看[运行T4模板(http://msdn.microsoft.com/en-us/library/vstudio/ee844259.aspx),这就是我用来生成HTML邮件的内容。 –

+0

这个问题或多或少重复? http://stackoverflow.com/questions/14243296/whats-the-current-best-solution-for-generating-html-from-asp-net-razor-template –

+0

问题是一个相似的主题,但我不”我认为这是重复的。您提到的问题指定了一个控制台应用程序,因此他们希望纯粹通过C#生成HTML模板。我正在寻找在文本中定义模板并使用C#在WPF应用程序中填充它。 – DaveDev

回答

0

的解决方案是使用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 &剃刀代码:

<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#。

+1

尽管这个链接可能回答这个问题,但最好在这里包含答案的重要部分,并提供供参考的链接。如果链接页面更改,则仅链接答案可能会失效。 –

+1

好点。我编辑过它以包含一个示例 – DaveDev

相关问题