Url.Actionメソッドを使用してajax呼び出しに必要なUrlを正しく生成しようとしていますが、RouteValuesを構築しようとすると問題が発生します。問題のあるコード行は次のとおりです。
_var url = @Url.Action("ViewFile", "Default", new { itemId = $(this).data("itemid") });
_
ご覧のとおり、JQuery $(this).data("itemid")
の結果をRouteValuesのitemId
に割り当てようとしています。
このコードをコンパイルできるようにするかみそり構文を使用する方法はありますか?
クライアント側とサーバー側を混同しています。次のようなものを試してください:
var url = '@Url.Action("ViewFile", "Default")?itemId=' + $(this).data("itemid");
かみそりビューエンジンで@
を記述する場合、このコマンドの最後にサーバー側で処理される命令を記述しています。あなたの場合、javascriptからのURLにパラメーターを追加したいので、クライアント側で@Url
ヘルパーによって生成されたURLと値を連結します。
PS:デフォルトルートテーブルを使用していると仮定しています。
別の方法は、プレースホルダーを作成してから置き換えることです。
var url = '@Url.Action("GetOrderDetails", "Home", new { id = "js-id" })'
.replace("js-id", encodeURIComponent(rowId));