web-dev-qa-db-ja.com

MVC 4で$ .ajaxを使用してAJAXリクエストを作成します

Razorを使用したMVC 4で$ .ajaxを使用してAJAXリクエストを作成しようとしています。それを実装する方法がわかりません。

this video を使用して、データを返すリンク駆動の呼び出しを正常に行うことができましたが、jquery関数内から同じことを行うことはできません。これを行う方法の基本的な例を見つけることができないようです。これは私が取り組んでいるものです:

HomeController.cs

        public string test(){
             return "It works";
        }

View.cshtml

function inventory(dealerID) {
    $.ajax({
        url: '@Url.Action("HomeController","test")',
        data: {dealerID: dealerID},
        type: 'POST',
        success: function(data) {
            process(data);
        }
    });
}
15
Mason

ActionResultにするだけです。また、Ajax POSTを使用している場合は、アクションにHttpPost属性を付ける必要があります。これを試して:

_[HttpPost]
public ActionResult test(string dealerID)
{
    return Content("It works");
}
_

編集実際、構文には他にもいくつか問題があります。

  1. _Url.Action_のコントローラー/アクションパラメーターの順序が間違っています-最初に「ActionName」、次に「ControllerName」の順にしてください
  2. _Url.Action_の場合、コントローラークラスが "HomeController"の場合、 "Home"のみが必要です。
  3. JQueryオプションの構文が間違っています-success: function(data) {}である必要があります。

_$.ajax({
    url: '@Url.Action("test", "Home")',
    data: {dealerID: dealerID},
    type: 'POST',
    success: function(data) {
        alert(data);
    }
});
_
28
McGarnagle