我为客户创建了动态页面的功能。他们通过指定页面的名称和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。
答案 0 :(得分:1)
如果您使用MVC,那么问题就解决了。在控制器中加载页面。将页面传递给视图。视图使用布局。
你为什么不这样做?
这就是我们这样做的方式,我们的网页可能会有所不同。您可以存储每种页面类型的视图,也可以创建适用于动态内容的视图。我们已经完成了这两种方法并且两种方实际上,我们根据需要在同一个项目中使用这两种方法,因为两者都有优势。