2010-05-19 97 views
11

我正在开发ASP.NET MVC2项目。问题是,当一个字符串被重写成URL时,会包含一个特殊字符,例如反斜杠或问号,即使我之前编码过,URL也会出错。反URL可以在URL重写中正确编码吗?

例如:

  1. 我有一个产品ID “P001 \ 2-2”。
  2. 我编码成 “P001%5C2-2
  3. 的URL http://domain.com/Product/p001%5C2-2响应HTTP错误400 - 错误的请求。

我该如何弄清楚它的正确性?

+0

我已删除我的答案:

与归一化的标志 “O” 以粗体实施例现在,所以问题可能会出现在未答复的部分,然后一些asp.net人可以看看。我应该理解url编码的东西,但不是asp.net-mvc特定的。 – YOU 2010-05-20 02:18:48

回答

5

尝试使用Html.Encode来解析您的反斜杠。 如果反斜杠是您id中唯一的'特殊'字符,您可以使用Replace(“%5C”,“\”)。

你有没有检查过你的routingMap?必须有像

产品/ {} prodictID路线

0

我在网址曾与%2F类似的问题。尝试追加nOrmalize标志到你的rewriteRule。

重写规则^(。*)的index.html $〇一二三三六〇〇三六二一四七八九五〇四二三二一〇$ 1 [R = 301,L,ö]