19

Url.Action メソッドを使用して ajax 呼び出しに必要な Url を正しく生成しようとしていますが、RouteValues を構築しようとすると問題が発生します。問題のコード行は次のとおりです。

var url = @Url.Action("ViewFile", "Default", new { itemId = $(this).data("itemid") });

ご覧のとおり、JQuery の結果を RouteValues に割り当てようとし$(this).data("itemid")itemIdいます。

このコードをコンパイルできるようにするかみそり構文を使用する方法はありますか?

4

2 に答える 2

35

クライアント側とサーバー側を混同しています。次のようなことを試してください:

var url = '@Url.Action("ViewFile", "Default")?itemId=' + $(this).data("itemid");

with razor ビュー エンジンを記述する場合@、このコマンドの最後にサーバー側で処理される命令を記述しています。あなたの場合、javascript から来る URL にパラメーターを追加したいので、クライアント側で値を@Urlヘルパーによって生成された URL と連結するだけです。

PS: デフォルト ルート テーブルを使用していると仮定しています。

于 2013-07-17T13:48:38.747 に答える
14

もう 1 つの方法は、プレースホルダーを作成してから置き換えることです。

var url = '@Url.Action("GetOrderDetails", "Home", new { id = "js-id" })'
              .replace("js-id", encodeURIComponent(rowId)); 
于 2014-07-30T06:35:45.477 に答える