ASP.NET自定义路由和友好的URL

时间:2019-04-01 14:01:02

标签: c# asp.net webforms routing friendly-url

我有一个网站(ASP.NET WebForms),可在该网站上从数据库构建路由表。另外,我启用了friendlyUrl

Application_Start的{​​{1}}中,我有以下代码:

Global.asax

RouteTable将如下所示:

友好网址

RouteTable.Routes.Clear();

foreach (var page in pages)
{
    Route siteRoute = new Route(page.RouteName, 
        new CustomRouteHandler("~/" + page.Handler));

    RouteTable.Routes.Add(siteRoute);
}

var settings = new FriendlyUrlSettings();
settings.AutoRedirectMode = RedirectMode.Permanent;
RouteTable.Routes.EnableFriendlyUrls(settings);

数据库中的自定义URL

/default => /default.aspx
/blog    => /blog.aspx
/about   => /about.aspx

我遇到的问题是,例如,如果有一个名为/blog/my-first-post => /blogpost.aspx /blog/my-second-post => /blogpost.aspx 的页面,然后在路由www.mysite.com/blog.aspx中放置了一个博客文章,则最后一个不显示为请求发送到页面www.mysite.com/blog/my-first-post而不是我在上一行代码(blog.aspx)中定义的blogpost.aspx的页面:

page.Handler

有没有一种方法可以解决这个问题,并将两个URL Route siteRoute = new Route(page.RouteName, new CustomRouteHandler("~/" + page.Handler)); /blog重定向到两个不同的页面?

0 个答案:

没有答案