2010-05-19 7 views
11

Sto lavorando su un progetto ASP.NET MVC2. Il problema è quando una stringa che verrebbe riscritta nell'URL contiene un carattere speciale come la barra rovesciata o il punto interrogativo, l'URL sarà errato, anche se l'ho codificato prima.La backslash può essere codificata correttamente nell'URL con riscrittura dell'URL?

Ad esempio:

  1. Ho un prodotto id "P001 \ 2-2".
  2. ho codificato in "p001% 5C2-2"
  3. L'URL http://domain.com/Product/p001%5C2-2 risponde Errore HTTP 400 - Bad Request.

Come posso farlo correttamente?

+0

Ho cancellato la mia risposta? per ora, la domanda potrebbe arrivare in una sezione senza risposta, quindi alcune persone di asp.net possono dare un'occhiata. Dovevo capire la roba di codifica dell'URL ma non quella specifica di asp.net-mvc. – YOU

risposta

5

Provare a utilizzare Html.Encode per risolvere la barra rovesciata. Se il backslash è l'unico carattere 'speciale' nel tuo id, puoi usare Replace ("% 5C", "\").

Hai controllato la tua routingMap? ci deve essere una via come

prodotto/{} prodictID

0

Ho avuto un problema simile con% 2F nei miei URL. Prova ad aggiungere il flag nOrmalize al tuo rewriteRule.

Esempio con normalizzare flag "O" in grassetto:

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

Problemi correlati