我們有許多應該呈現爲html格式的域實體,它們在彈出窗口中顯示它們的細節。將C#對象渲染爲Html
我會很高興做這樣的事情:
Product product = new Product(...);
product.ToHtml(); // or: HtmlRenderer.Render(Product);
,但我的主要問題是如何從背後做這個東西。 我有3個不同的答案:
1渲染通過代碼:
我可以簡單地寫我的渲染HTML中的ToHtml方法(C#)代碼 - 問題是,這是太靜態。如果您想將標題移動到中間,則應更改代碼。此外,在C#中閱讀Html縮進非常困難。
2.使用XSL:
XSL文件可以輕鬆地管理HTML模板和使用XSLT我可以將XML文件到文件的正確的地方。 解析器已經由其他人編寫(只需要學習語法) **因此,我們需要每個對象都可以序列化爲Xml。如果對象發生了變化 - > Xml將被更改 - > xslt也需要更改 **這也會讓我選擇簡單地縮進html,例如:添加css功能和\或更改html設計使用
3.其他模板引擎:
寫我自己的C# - > HTML模板引擎,它會讀取文件的模板(* .template),並會在正確的地方插入正確的屬性使用反射的模板。 **在這個解決方案中,我們有很多我們可以想到的問題,例如:語法應該如何? 這個東西好嗎? %名稱%%描述% 以及我們如何處理數組? **也許我們可以使用現有的引擎(Brail或T4模板)?
你更喜歡什麼? 你知道一個好的引擎嗎?現在我更喜歡第二種解決方案,但它會很慢。
謝謝
我不是在一個web團隊中工作,我將對象作爲html渲染併發送給其他任何人 - 誰可以在wpf \ palm \ web-site或其他技術中使用它,所以我想ascx對我不好。 – rabashani 2009-05-25 22:07:29
在這種情況下,您可以使用JSON格式將其序列化並將其發送給其他用戶使用。 – shahkalpesh 2009-05-25 22:11:27