は個人的に私は使用してHTML5データ - *属性または含む好みますDOMの一部としてのURL私が目立たないAJAXifyの要素。
このようなことは、$.ajax
の呼び出しを書くことはありません。 DOMイベントに対応するように記述します。例えば、アンカーのクリックのように。この場合、それは些細だ、あなただけの、このアンカーを生成するHTMLヘルパーを使用します。その後、
@Html.ActionLink("click me", "someAction", "somecontroller", new { id = "123" }, new { @class = "link" })
と:
$('.link').click(function() {
$.ajax({
url: this.href,
type: 'GET',
success: function(result) {
...
}
});
return false;
});
または多分あなたはフォームをAJAXifyingされています
@using (Html.BeginForm("SomeAction", "SomeController", FormMethod.Post, new { id = "myForm" }))
{
...
}
と次に:
$('#myForm').submit(function() {
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize(),
success: function(result) {
...
}
});
return false;
});
対応するDOM要素で適切なURLが利用できない場合、HTML5 data- *属性を使用する例もあります。ドロップダウンの選択が変更されたときに、AJAXでコントローラアクションを呼び出すとします。カスケーディングddlsを例と考えてください。
@Html.DropDownListFor(x => x.SelectedValue, Model.Values, new { id = "myDdl", data_url = Url.Action("SomeAction") })
、その後:ここ
は、あなたのドロップダウンは次のようになります方法です
$('#myDdl').change(function() {
var url = $(this).data('url');
var selectedValue = $(this).val();
$.getJSON(url, { id: selectedValue }, function(result) {
...
});
});
あなたが見ることができるようにあなたが本当にあなたの中で宣言この_getUrl
グローバルjavascriptの変数を必要としません。ビュー。
スクリプトは、最小化可能な/キャッシング可能なjsファイルに入れる必要があります。 – asawyer
私は同じことをしますが、それが良いことであるかどうかはわかりません。 +1質問:+1 –
@asawyer - あなたのコメントのポイントは何ですか? – cs0815