我理解在ASP.Net DynamicData(也许是普通的ASP或MVC)中,我可以提供自己的RouteHandler
routes.Add(new DynamicDataRoute("{table}/{action}.aspx") {
RouteHandler = new CustomRouteHandler()
});
public class CustomRouteHandler : DynamicDataRouteHandler
{
public override IHttpHandler CreateHandler(DynamicDataRoute route, MetaTable table, string action)
{
// what kind of cool stuff should I add in here?
return base.CreateHandler(route, table, action);
}
protected override string GetCustomPageVirtualPath(MetaTable table, string viewName)
{
// what kind of cool stuff should I add in here?
return base.GetCustomPageVirtualPath(table, viewName);
}
protected override string GetScaffoldPageVirtualPath(MetaTable table, string viewName)
{
// what kind of cool stuff should I add in here?
return base.GetScaffoldPageVirtualPath(table, viewName);
}
}
但有人可以解释我如何填写这个课程吗? (举一些示例代码)
我会覆盖什么来做一些有用的事情?
我可以使用自己的RouteProvider做些什么?给我一些有用的例子。
作为一个例子,我想对某些表进行401重定向,但继续使用其他表的默认行为(当然,基于角色或登录用户)。
答案 0 :(得分:2)
您可以在任意数量的Web应用程序中将其用于SEO(搜索引擎优化)。过去可以通过URL重写完成的事情。例如,如果您要构建一个博客引擎,并希望在包含文章关键字的网址中插入一个slug,则可以将其添加为处理程序。
http://mysite.com/blog/cheap-umbrellas-in-san-diego.aspx
然后你可以创建一个路由处理程序来处理这个特定的模式,并通过slug(cheap-umbrellas-in-san-diego)和ID之类的东西来查找你的帖子(/blog/post.aspx?id=123465 )