2010-04-28 145 views
2

我正在使用mvc.net,我希望在運行時創建視圖頁面。可能嗎?如果是,那我該怎麼做?在運行時創建視圖頁面

+0

你是什麼意思動態? – LukLed 2010-04-28 09:56:27

+0

意味着我想在運行時打包查看頁面。 – shruti 2010-04-28 10:47:07

+1

您是否看到artice? http://haacked.com/archive/2009/04/22/scripted-db-views.aspx – LukLed 2010-04-28 15:46:11

回答

1

我們實際上將NVelocity片段存儲在一個數據庫中,我們在運行時將它們拉到一起,並與ViewData對象結合,以獲得我們通過Content()而不是View()返回的輸出HTML字符串。

它歸結爲是這樣的(僞代碼,而不是實際的代碼):

var _viewDataObject = Products.All(); 
var _view = PageTemplate.Single(template=>template.Slug == PageTemplateEnums.HomePage); 
var _outputHtml = nvelocityMemoryEngine.Transform(_view,_viewDataObject); 
return Content(_outputHtml); 

雖然我們做了一些緩存性能方面的原因,這意味着你可以改變的觀點而沒有觸及的Visual Studio或部署任何文件系統級別的東西。

添加諸如MimeType處理等東西並不需要太多,我們可以讓開發團隊之外的人員編輯視圖。