2011-10-20 14 views
7

L'auto-fuga di Razor mi fa casino. Sto costruendo un URL per alimentare a $ .load metodo di jQuery:Il rasoio a forza non sfugge a un url

<script> 
$("#baz").load('@Url.Action("Method", new { foo=Model.Foo, bar=Model.Bar })'); 
<script> 

Il problema è, l'url è venuta fuori sfuggito nello script emessa (& == &)

<script> 
$("#baz").load('Method?foo=Foo&amp;bar=Bar'); 
<script> 

Così MVC soffoca sulla richiesta dicendo che il parametro bar non è stato fornito.

Ho provato a completare il richiamo in @ Html.Raw ma sembra che sfugga ancora all'URL. Tornando su pianeta aspx, farei semplicemente <% = invece di <%: ma ovviamente non va bene qui :). Ho anche provato a inserire i parametri in un oggetto dati per $ .load, ma questo sembra forzare un post, non un get (e voglio un get qui).

Questo è qualcosa che potrei semplicemente risolvere con il routing, ma questo progetto non è ancora lì - continuando a ottenere funzionalità senza problemi con il routing. D'altro canto, ho bisogno di essere in grado di indirizzare questo URL, quindi non voglio solo hardcode la querystring.

Qualche idea?

+0

Si può rispondere alla tua domanda, sei arrivato un errore? –

+0

Mi dice che devo aspettare 8 ore. – lamont

+0

Ahh, questo fa schifo. Dovresti trasferirlo a una risposta quando puoi. –

risposta

14

Ho appena eseguito un test, e il commerciale non è stato codificato nel mio test utilizzando Html.Raw, in questo modo:

@Html.Raw(Url.Action("Method", new { foo = Model.Foo, bar = Model.Bar })) 
Problemi correlati