2013-06-27 27 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

相關問題