Сделайте запрос AJAX, используя $.ajax в MVC 4

Я пытаюсь сделать запрос AJAX, используя $.ajax в MVC 4 с Razor. Я не уверен, как его реализовать.

Используя это видео, я смог успешно сделать связанный с ссылкой вызов, который возвращал данные, но я не могу сделать то же самое изнутри функция 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);
        }
    });
}

Ответы

Ответ 1

Вам просто нужно сделать это ActionResult. Кроме того, если вы используете AJAX POST, действие должно быть отмечено с помощью атрибута HttpPost. Попробуйте следующее:

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

Изменить На самом деле, есть несколько других проблем с синтаксисом.

  • Url.Action имеет параметры контроллера/действия в неправильном порядке - сначала должно быть имя "ActionName", затем "имя_контроллера"
  • Для Url.Action, если класс контроллера является "HomeController", вам нужно просто "Главная"
  • Синтаксис параметров JQuery неверен - должен быть success: function(data) {}.

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