2011-05-06 257 views
1

我需要这条路线在我的ASP MVC应用程序匹配:非法字符%

http://localhost/<itemName>/details 

当项目名称中包含非法字符,例如%符号,下面的URL将炸毁:

(1) http://localhost/item%25Name/Details 

在这种情况下,正确的网址是:

(2) http://localhost/Details/?item=item%25Name 

是否有可能定义路由在RegisterRoutes中将符合(1)的正常路线与项目名称中含有%符号的路线匹配到(2)?

在此先感谢

回答

0

这里是我会建议你:

  1. 这才是你不必担心的查询字符串的一部分一切。没有必要做任何特殊的路由。
  2. 对于进入URL的路径部分的所有内容,您都可以过滤危险字符。例如,在StackOverflow上带有问题标题的Here's how this is done
+0

Upss,对我无效。我需要在服务器端的项目名称的确切副本。项目名称实际上是在版本控制系统中进行搜索的文件路径,因此您可以想象,这必须是确切的。 – 2011-05-06 08:56:51

+0

@DanielPeñalba,那么恐怕你会很难用这些字符作为URL路径的一部分。在这种情况下,可能查询字符串是要走的路。避免对可以包含这些字符的变量使用url标记,因为IIS不会给您带来安宁。 – 2011-05-06 08:58:58

+0

最初的问题是,是否有任何方法来定义匹配到(1)的正常路由和使用非法符号路由到(2)的路由? – 2011-05-06 09:04:37