2011-09-21 100 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