ASP.NET MVC で Ajax 呼び出しを実行しようとすると、次のような課題に遭遇する可能性があります。以下のシナリオ:
目的は、コントローラー メソッドから返されたデータを含むアラートを表示することです。ただし、アラートは発生しません。
コントローラー:
public class AjaxTestController : Controller { public ActionResult FirstAjax() { return Json("chamara", JsonRequestBehavior.AllowGet); } }
ビュー:
<code class="html"><script type="text/javascript"> $(document).ready(function () { var serviceURL = '/AjaxTest/FirstAjax'; $.ajax({ type: "POST", url: serviceURL, data: param = "", contentType: "application/json; charset=utf-8", dataType: "json", success: successFunc, error: errorFunc }); function successFunc(data, status) { alert(data); } function errorFunc() { alert('error'); } }); </script></code>
観察:
当初、Ajax 呼び出しはアラートのトリガーに失敗しました。無関係なパラメータを追加し、コントローラでメソッドを変更した後、アラートは正しく機能し始めました。ただし、この動作の理由は不明のままです。
1.不要なデータ属性の削除:
サーバーにデータが送信されないため、データ属性を Ajax 呼び出しから削除する必要があります。
2. URL に Razor 構文を使用する:
Ajax メソッドでは、静的文字列の代わりに Razor 構文を使用して URL を生成します:
<code class="js">$.ajax({ url: '@Url.Action("FirstAjax", "AjaxTest")', contentType: "application/json; charset=utf-8", dataType: "json", success: successFunc, error: errorFunc });</code>
3.成功関数にメッセージ表示を追加:
成功関数で、アラートに表示したいメッセージを追加します。
4.データ POST の処理:
サーバーにデータを POST する必要がある場合は、データ属性を追加し、Ajax 呼び出しで適切なデータを指定します。
5.更新された Ajax 呼び出し:
<code class="js">$.ajax({ type: "POST", url: '@Url.Action("FirstAjax", "AjaxTest")', contentType: "application/json; charset=utf-8", data: { a: "testing" }, dataType: "json", success: function() { alert('Success'); }, error: errorFunc });</code>
以上がデータが欠落している場合、ASP.NET MVC の Ajax 呼び出しでアラートがトリガーされないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。