マスターページのリンクからAjax呼び出しを取得しようとしています。
したがって、現在のページ/コントローラーに関連するアクションのみを指定したいと思います。
すなわち
$.ajax({
url: '/Save',
type: "GET",
// .. etc
});
ページを提供するコントローラーの「保存」アクションを呼び出したいと思います。これはすぐに機能すると思いましたが、そうではないようです。エレガントな解決策はありますか?
マスターページのリンクからAjax呼び出しを取得しようとしています。
したがって、現在のページ/コントローラーに関連するアクションのみを指定したいと思います。
すなわち
$.ajax({
url: '/Save',
type: "GET",
// .. etc
});
ページを提供するコントローラーの「保存」アクションを呼び出したいと思います。これはすぐに機能すると思いましたが、そうではないようです。エレガントな解決策はありますか?
これを直接視野に入れれば、次のことができます
$.ajax({
url: '@Url.Action("Save")',
type: "GET",
// .. etc
});
そうでなく、javascript が外部ファイルにある場合は、生成された URLUrl.Action
を要素にdata-?
html5 属性として添付できます。そして、ajax 呼び出しを行う前に、その属性値を動的に読み取ります。
<input type="text" data-save-action-url="@Url.Action("Save")" />
asp.net mvc で URL をハードコーディングしないでください。常に使用しますUrl.Action
。URL を生成するときにルーティング構成を検査し、それに応じて常に正しい値を返します。URL をハードコーディングすると、ルーティング構成を変更したときにアプリケーションが使用できなくなる可能性があります。また、アプリケーション内のすべての URL を手動で変更する必要があります。