/ / ASP.NET MVC + IIS7 + FireFox: barra finale in URL - asp.net-mvc, iis, riscrittura url

ASP.NET MVC + IIS7 + FireFox: barra finale in URL - asp.net-mvc, iis, riscrittura url

Nota: ho fatto ore di ricerca per la risposta, e non ho potuto trovarne una.

Ho un'applicazione ASP.NET MVC (2.0), ospitata su IIS7 (modalità integrata).

Quando viene effettuata la richiesta GET /Toons/List - Ricevo un reindirizzamento (302) per /Toons/List/ che è previsto.

IL PROBLEMA
Ma quando invio un INVIARE richiesta, dillo /Toons/Add (notare nessuna barra finale) restituisce, di nuovo, il reindirizzamento (302) a /Toons/Add/. A questo punto, FireFox, invia erroneamente OTTENERE richiesta a tale URL di reindirizzamento. Cioè [GET] /Toons/Add/ invece di [POST] /Toons/Add/. Questo non è corretto, ma il comportamento noto. Poiché non c'è [GET] attivo /Toons/Add/ - Ricevo la risorsa non trovata (404).

Ospito la mia app con webhost4life e non hoaccesso a IIS7, che limita il mio utilizzo della riscrittura dell'URL e dell'uso dei moduli (sto lavorando con loro per aggirare questo problema), ma anche ISAPI è il modo migliore per farlo? Non lo so abbastanza per stare bene con facendo così.

Questo è diventato un problema comune, sono sorpreso di non riuscire a trovare una soluzione facile per questo.

Esiste una soluzione che non implichi l'uso del suffisso .aspx / .mvc e la riscrittura dell'URL?
Di quei due, se devo, quale preferirei?

Qualche idea / suggerimento?

MODIFICARE:
ho letto http://www.hanselman.com/blog/ASPNETMVCAndTheNewIIS7RewriteModule.aspx, come ho detto, sto cercando di trovare una soluzione più semplice, un'opzione "Just Work".

MODIFICARE:
io avere soluzione vista con l'aggiunta di barre (/) ad ogni URL, di nuovo, non sembra essere la soluzione più elegante.

risposte:

1 per risposta № 1

Dovresti utilizzare l'URL / percorso effettivo quandolinking. Se non è possibile rimuovere la barra dalla rotta a causa di una limitazione dell'ambiente di hosting o della versione 2.0 del framework MVC, è necessario includere la barra finale nei propri URL.

Affidarsi al server per reindirizzare ogni URL aumenterà il tempo di elaborazione del server e il tempo di caricamento della pagina.


0 per risposta № 2

Puoi dire a IIS di restituire 307 anziché 302?


0 per risposta № 3

Hai impostato il metodo di azione nel controller per accettare post HttpVerbs? Puoi anche provare a impostare un percorso in Global.asax per / Toons / Add, quindi MVC non lo leggerà come / Controller / Method /