2011-09-21 128 views
0

我已經爲我的客戶創建了動態頁面的功能。他們通過指定頁面的名稱和HTML在管理工具中創建頁面。然後,如果前端有人導航到http://www.site.com/content/ {名稱},則加載動態內容。使用母版頁內容創建動態頁面

這是我的。 Global.asax中:

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.MapRoute(
     "Content", // Route name 
     "Content/{name}", // URL with parameters 
     new { controller = "ContentPages", action = "Page" } 
    ); 
} 

和ContentPagesController:

public ContentResult Page(string name) 
{ 
    var contentPage = _contentPagesRepository.GetContentPage(name); 

    return new ContentResult 
    { 
     Content = contentPage.Content, 
     ContentType = "text/html" 
    }; 
} 

這個偉大的工程。一切都正確加載。

我還有其他非動態頁面,如聯繫我們頁面。所有這些其他頁面都使用佈局頁面。問題是動態頁面沒有來自佈局頁面的HTML。

是否有任何方法加載動態內容,並以某種方式利用佈局頁面的功能並將佈局內容包裝到佈局HTML中?

我使用的是MVC 3和Razor。

回答

1

如果你使用MVC,那麼你的問題就解決了。將頁面加載到控制器中。將頁面傳遞給視圖。該視圖使用佈局。

你爲什麼不這樣做?

這就是我們如何做,我們的網頁可以不同。您可以存儲每種頁面類型的視圖或創建一個適用於您的動態內容的視圖。我們已經完成了兩種方法,兩種方法都很好。實際上,我們根據需要在同一個項目中使用兩種方法,因爲兩者都有優勢。

+0

_你爲什麼不這樣做?_ - 因爲我是一個無助的傻瓜? :) 謝謝。 – Steven

+0

沒問題。這有點直接,但我想我會問,以防萬一有一個很好的理由! – Cymen