ASP.NET MVC3 - 如何配置Url以在Url中用短划线( - )替换空格?

时间:2013-04-17 13:47:08

标签: asp.net asp.net-mvc-3

我想问一下如何在我的网址中用短划线( - )替换空格。 我的详细信息操作有一个标题网址,问题是在单词之间出现空格而不是短划线( - )。

For Examble:

我的网址:〜/ khoa-hoc / 1 /LớpLuyệnThi

但我想要:
        step1-> 1.~ / khoa-hoc / 1 /Lớp-Luyện-Thi         step2-> 2.~ / khoa-hoc / 1 / lop-luyen-thi

我的路线

   my route routes.MapRoute( null,
      "khoa-hoc/{id}/{title}",
      new { controller = "Course", action = "Details", id = "", title=""},
      new { id = @"\d+" } );

我的观点:          @ Html.ActionLink(item.Name,“Details”,new {id = item.CourseID,title = item.Title})

我已经搜索了一些关于此的主题,但直到现在我仍然没有解决这个问题,希望有人可以帮助我, 提前感谢,抱歉我的英语不完美。

1 个答案:

答案 0 :(得分:3)

在网址的路径部分中包含任意文本是您可能会遇到的问题。 Scott Hanselman详细解释了如果您尝试在following blog post处执行此操作时可能遇到的问题。在他的帖子结束时,他建议这个场景:

  

在完成所有这些努力以获得请求路径中的疯狂内容之后,就是这样   值得一提的是,只需将值保留为Query的一部分   字符串(记得在这篇文章的开头回答?)更容易,   更清洁,更灵活,更安全。

现在有人说你可能会反对这个建议,仍然试图在网址的路径部分使用这些任意文本。就像StackOverflow在这里使用问题标题一样。在构造slug时,您可以使用过滤功能替换所有危险字符。这是他们generate those SEO friendly urls的方式。