Anjali0904 Ответов: 5

AJAX-вызов не попал в URL в контроллер/действие


Для события OnChange выпадающего списка я делаю вызов ajax. В url-пути, когда я даю путь контроллера/действия, он вообще не попадает в метод.
Мой код выглядит так:

function FillHO() {
    //alert('Test');
    var stateId = $('#ddlHO').val();
    $.ajax({
        type: "POST",
        url: '@Url.Action("SetSelectedHO","../../Controllers/ReportsController")' 
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        data: '{SelectedValue: "' + stateId + '" }',
        success: function (response) {
            alert('Test');
        },
        failure: function (response) {
        alert(response.d);
    }
    });
}


Что я уже пробовал:

Я пробовал '../../Controllers/ReportsController/SetSelectedHO'
'ReportsController/SetSelectedHO'

santosh.yadav198613

Попробуйте вызвать действие из клиента Rest и проверьте, чего вам не хватает

ZurdoDev

Реализуйте функцию ошибки и посмотрите, что происходит.

5 Ответов

Рейтинг:
20

cigwork

Используйте инструменты разработки (F12 в Chrome) для проверки JavaScript, который есть у клиента. Возможно, вы обнаружите, что URL-адрес, указанный для вызова, не соответствует вашим ожиданиям.

Сделать это...

url: '@Url.Action("SetSelectedHO","../../Controllers/ReportsController")'


... сгенерировать действительный URL-адрес? Это выглядит так, как будто вы устанавливаете литерал, а не возвращаемое значение @URL.Метод действия.


Рейтинг:
2

Vincent Maverick Durano

Вам не нужно указывать путь при использовании Url.Action() метод. Вам необходимо указать Controller вместо имени.

Так что если у вас есть Controller это было названо ReportsController, тогда вы могли бы попробовать сделать что-то вроде этого:

url: '@(Url.Action("SetSelectedHO","Reports"))'


Обратите внимание, что суффикс Controller был опущен при ссылке на a Controller имя. Другими словами, ваш ReportsController можно ссылаться как Reports только. Это часть конвенции.

Для получения дополнительной информации о других методах перегрузки Url.Action() метод см.:UrlHelper.Метод Действия (System.Web.Mvc)[^]


Gopal Rajbanshi

бесполезный

CHill60

Бесполезный комментарий - если вы думаете, что есть проблема с решением и собираетесь потрудиться опубликовать комментарий, по крайней мере, объясните, почему вы думаете, что есть проблема

Рейтинг:
2

Anjali0904

Решенный.
Он работал без указания ссылки на контроллер в url-адресе

url: "SetSelectedHO",


Спасибо.


Рейтинг:
1

Member 14024864

Это сработало для меня:

url:'../Controller/action'


Member 14641047

Спасибо, что он работает для меня на laravel, на ubuntu

Рейтинг:
0

Member 14641047

Спасибо за решение 4 его работы forme , на laravel на ubuntu


CHill60

Если вы хотите прокомментировать решение, то используйте команду "есть вопрос или комментарий?" ссылка рядом с ним. Не оставляйте комментарии или вопросы в качестве решений для сообщений других участников!