创建包含母版页内容的动态页面

时间:2011-09-21 17:57:25

标签: c# asp.net asp.net-mvc asp.net-mvc-3

我为客户创建了动态页面的功能。他们通过指定页面的名称和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。

有没有办法加载动态内容,并以某种方式利用布局页面的RenderBody()功能并将内容包装在布局HTML中?

我正在使用MVC 3和Razor。

1 个答案:

答案 0 :(得分:1)

如果您使用MVC,那么问题就解决了。在控制器中加载页面。将页面传递给视图。视图使用布局。

你为什么不这样做?

这就是我们这样做的方式,我们的网页可能会有所不同。您可以存储每种页面类型的视图,也可以创建适用于动态内容的视图。我们已经完成了这两种方法并且两种方实际上,我们根据需要在同一个项目中使用这两种方法,因为两者都有优势。