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

时间:2011-08-08 05:29:01

标签: c# asp.net routing seo

  

可能重复:
  How does StackOverflow generate its SEO-friendly URLs?

我使用Asp.net 4和路由

我使用此路线为我的网站创建SEO友好URL。 Title url paramenter是一个字符串示例“这是一个标题”,因此我在浏览器中使用此格式/Content/This%20is%20a%20Title获取了该网址。

我希望将%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
        );

1 个答案:

答案 0 :(得分:2)

重定向到此网址时,请使用以下内容:

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

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