可以使用MVC路由来创建动态页面存储在动态页面而不是查看页面的动态页面
答
这条线路只需添加到您的RouteTable的底部:
routes.MapRoute("DynamicPages", "{*page}", new { Controller = "DynamicPages", Action = "Show", Page = String.Empty });
而从分贝显示动态页面创建一个控制器:
public class DynamicPagesController : Controller
{
public ActionResult Show(string page)
{
var pageContent = DB.GetContentForPage(page);
return Content(pageContent);
}
}
答
以下是一种方法:在Application_Start的global.asax文件中,需要设置默认控制器工厂。用您自己的工厂实例覆盖它。
void Application_Start()
{
ControllerBuilder.Current.SetControllerFactory(new MyControllerFactory());
}
MyControllerFactory
应该DefaultControllerFactory
继承和选择控制器使用的时候,看看你的数据库要显示相应的页面。如果该页面存在,请选择适当的控制器并覆盖requestContext.RouteData
集合中的操作,以指向显示动态页面的适当操作。
如果请求的页面不存在,则将调用传回给基方法,并让它执行通常会执行的操作。
还有其他的方法可以做到这一点,但是这个应该可以工作,并且允许你在404页面前拦截请求。
好东西!我认为实现动态页面的好方法 – Michael 2011-05-05 19:15:10