JavaScript環境内(cshtmlファイル内)でMVC 3アクションのURLを生成しようとしています。
<script type="text/javascript">
...
var src = "@Url.Action("GetProductImage", new { productId = Model.Product.Id, pos = 1, size = 0 })";
$(document.createElement("img")).attr("src", src);
...
</script>
これでほぼ問題なく動作しますが、私の問題はクエリ文字列がエスケープされていることです。の代わりに:
"/Products/GetProductImage?productId=1&pos=0&size=0"
以下を生成します:
"/Products/GetProductImage?productId=1&pos=0&size=0"
私のアクションは呼び出されません。
これで、独自のカスタムUrlヘルパー関数を作成できることがわかりましたが、これまたは他の組み込みヘルパーを使用してエスケープされていないURLを取得できるかどうか疑問に思っていましたか?
よろしくお願いします、G.
<script type="text/javascript">
var src = "@Html.Raw(Url.Action("GetProductImage", new { productId = Model.Product.Id, pos = 1, size = 0 }))";
$(document.createElement("img")).attr("src", src);
</script>
var src = "@Html.Raw(Url.Action("GetProductImage", new { productId = Model.Product.Id, pos = 1, size = 0 }))";
Url.Actionは私のために働いたnot HtmlUrl.Action
楽しい!