2010-05-19 28 views
11

Estoy trabajando en un proyecto ASP.NET MVC2. El problema es cuando una cadena que se reescribirá en la URL contiene un carácter especial, como una barra invertida o un signo de interrogación, la URL será incorrecta, incluso si la he codificado antes.¿Se puede codificar la barra invertida correctamente en URL con reescritura de URL?

Por ejemplo:

  1. tengo una identificación del producto "p001 \ 2-2".
  2. I codificada en "p001% 5C2-2"
  3. La URL http://domain.com/Product/p001%5C2-2 responde Error HTTP 400 - Solicitud incorrecta.

¿Cómo puedo corregirlo?

+0

He borrado mi respuesta? por ahora, entonces la pregunta podría surgir en una sección sin respuesta, entonces algunas personas de asp.net pueden echarle un vistazo. Se supone que debo entender la codificación de url pero no asp.net-mvc. – YOU

Respuesta

5

Intenta usar Html.Encode para resolver la barra invertida. Si la barra diagonal inversa es el único carácter "especial" en su ID, puede usar Reemplazar ("% 5C", "\").

¿Has comprobado tu mapa de rutas? tiene que haber una ruta como

Producto/{} prodictID

0

He tenido un problema similar con 2F% en mis URL. Intenta anexar el indicador nOrmalize a tu rewriteRule.

Ejemplo con la bandera normalizar "O" en negrita:

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

Cuestiones relacionadas