2011-10-20 16 views
7

カミソリの自動エスケープが私を悩ませている。私はjQueryの$ .LOAD方法に供給するために、URLを構築しています:強制カミソリがURLをエスケープしないようにする

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

問題は、URLが(& == &)だから、

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

出てくる放射されたスクリプト内でエスケープされていますbarパラメータが提供されていないことを示す要求のMVCがチョークします。

@ Html.Rawで呼び出しをラップしようとしましたが、それでもURLをエスケープするようです。私はちょうど<%=の代わりに<%をやっています:しかし、明らかにそれはここでいいです:)。私は$ .loadのデータオブジェクトにパラメータを入れようとしましたが、それはポストを強制するように見えますが、get(そして私はここに行きたい)です。

これは私がルーティングで修正することができるものですが、このプロジェクトはまだありません。まだルーティングを邪魔することなく機能をダウンさせています。裏返して、私は最終的にこのURLをルーティングできるようにする必要があるので、私は単純にクエリ文字列をハードコードしたくありません。

どのような考えですか?

+0

あなたがエラーを取得した、独自の質問に答えることができますか? –

+0

私は8時間待たなければならないと言います。 – lamont

+0

ああ、それは吸う。そうすることができたら、答えに移動する必要があります。 –

答えて

14

私はちょうどテストを実行し、アンパサンドがHtml.Rawを使用して私のテストでエンコードされていなかったので、同じよう:

@Html.Raw(Url.Action("Method", new { foo = Model.Foo, bar = Model.Bar })) 
関連する問題