Asp.Net路由-用生成的URL中的短划线替换空格%20

本文关键字:替换 空格 URL 路由 Asp Net | 更新日期: 2023-09-27 18:05:02

可能重复:
StackOverflow是如何生成SEO友好的URL的?

我使用Asp.net 4和路由

我使用这个路线为我的网站创建SEO友好的URL。Title url paramenter是一个字符串示例"This is a Title",结果我在浏览器中获得了格式为/Content/This%20is%20a%20Title的url。

我宁愿用可读性更强的破折号替换%20的空白,例如:/Content/This-is-a-Title

知道怎么做吗?谢谢你在这个上的帮助

        routes.MapPageRoute(
            "View Content",                     // Route name
            "Content/{Title}",                  // Route URL
            "~/Cms/FrontEndCms/Content.aspx"    // Web page to handle route
        );

Asp.Net路由-用生成的URL中的短划线替换空格%20

重定向到此URL时,请使用以下命令:

Response.Redirect(Page.GetRouteUrl(
    "View Content", 
    new { Title=(yourtitlehere).ToString().Trim().Replace(" ","-") })
);

我添加了Trim()。如果标题以空格开头或结尾,服务器可能会认为这是一条不同的路径,并返回一个404: Resource not found