2010-05-19 2 views
11

Я работаю над проектом ASP.NET MVC2. Проблема в том, что строка, которая будет переписана в URL, содержит специальный символ, такой как обратная косая черта или знак вопроса, URL-адрес будет неправильным, даже если я его закодировал раньше.Может ли обратная косая черта быть правильно закодирована в URL с переписыванием URL?

Например:

  1. У меня есть идентификатор продукта "P001 \ 2-2".
  2. я закодированы его в "P001% 5C2-2"
  3. URL-адрес http://domain.com/Product/p001%5C2-2 отвечает Ошибка HTTP 400 - Bad Request.

Как я могу исправить это?

+0

Я удалил мой ответ? на данный момент, так что вопрос может возникнуть в неотвеченном разделе, а затем некоторые люди asp.net могут взглянуть. Я должен понимать, что кодировка url, но не asp.net-mvc, специфическая. – YOU

ответ

5

Попробуйте использовать Html.Encode, чтобы решить вашу обратную косую черту. Если обратная косая черта является единственным «специальным» символом в вашем id, вы можете использовать Replace («% 5C», «\»).

Вы проверили свою маршрутную карту? там должен быть маршрут, как

продукта/{} prodictID

0

У меня была аналогичная проблема с% 2F в моих URL. Попробуйте добавить флаг nOrmalize в свой rewriteRule.

Пример с нормализуют флаг "O" выделены жирным шрифтом:

RewriteRule^(. *) Index.html $ http://www.yoursite.com/ $ 1 [R = 301, L, O ]