ASP.NET MVC : jQuery.ajaxを使った非同期処理
ASP.NET MVCで、jQuery.ajaxを使った非同期処理の実装方法を説明する。
ajaxを使うことで、ページ上の情報をページ遷移せずに更新できる。
簡単なサンプルを通して、GETやPOSTでの非同期処理の実装方法を確認する。
サンプル
テキストボックスに文字列を入力しボタンをクリックすると、サーバで処理が実行され、入力した文字列がそのまま返される。
返された文字列は、テキストボックスの下に表示される。
1. GET
$.get()
を使って非同期処理を実現する。
クライアント
<script>
$(function () {
$('#getButton').click(function () {
$.get('@Url.Action("Get", "Home")',
{ text: $('#textbox').val() },
function (data) {
console.log(JSON.stringify(data));
$('#text').text(data['returnText']);
}
);
});
});
</script>
補足
※リクエストの送信先URLは、シングルクオーテーション「'」で囲むこと。
※「ReferenceError: $ is not defined」のエラーが出る場合、「jquery.min.js」が読み込めていない。
_Layout.cshtmlのbodyタグにある以下の行を、headタグ内に移動する。
<script src="~/lib/jquery/dist/jquery.min.js"></script>
サーバ
public IActionResult Get(string text)
{
System.Diagnostics.Debug.WriteLine(text);
System.Threading.Thread.Sleep(5000);
return Json(new { returnText = text });
}
2. POST
$.post()
を使って非同期処理を実現する。
GETと異なるのは、以下の2点。
* $.get()
ではなく、$.post()
を使う。
* リクエストの送信先は、HomeController.Get()
ではなく、HomeController.Post()
である。メソッドの上には、[HttpPost]
を付けること。
クライアント
<script>
$(function () {
$('#postButton').click(function () {
$.post('@Url.Action("Post", "Home")',
{ text: $('#textbox').val() },
function (data) {
console.log(JSON.stringify(data));
$('#text').text(data['returnText']);
}
);
});
});
</script>
サーバ
[HttpPost]
public IActionResult Post(string text)
{
System.Diagnostics.Debug.WriteLine(text);
System.Threading.Thread.Sleep(5000);
return Json(new { returnText = text });
}
Author And Source
この問題について(ASP.NET MVC : jQuery.ajaxを使った非同期処理), 我々は、より多くの情報をここで見つけました https://qiita.com/lusf/items/fdcfc0396514f64adc67著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .