2013-06-24 4 views
0

Я новичок в программировании MVC. Я работаю над простым приложением POC, которое отображает/редактирует данные из базы данных.AJAX вызов для действия контроллера MVC

У меня есть 2 просмотра и 2 контроллера. На одном из них JQuery AJAX вызывает метод действия контроллера MVC, работает нормально. Но не на другом (здесь AJAX-вызов не вызывает метод Action).

Может ли кто-нибудь иметь эту ситуацию раньше ???

код JQuery ниже:

$('#ddlZones').change(function() { 
    var value = $('#ddlZones option:selected').val(); 
    // alert(value); var status = $('#ddlStatus option:selected').val(); 
    // alert(status); $('#lstResources').children().remove(); 
    $('#lstBeds').children().remove(); 
    $.ajax({ url: 'FillResources', type: 'POST', 
     data: JSON.stringify({ ZoneId: value }), 
     dataType: 'json', contentType: 'application/json', 
     success: function (result) { 
      for (var r in result) { 
       $('#lstResources').append('<option value="' + result[r].Value + '">' + result[r].Text + '</option>'); 
      } 
     } 
    }); 
}); 

Благодаря Latha

+1

umm, не могли бы вы показать код, где проблема происходит? Или, по крайней мере, ошибка, которую вы получаете? – codetantrik

+0

Я не получаю никакой ошибки. Метод AJAX post не вызывает метод действия. Пожалуйста, посмотрите мой обновленный вопрос для кода. – Latha

+0

Я поймал исключение по ошибке: в вызове AJAx он просто говорит об ошибке: «Запрошенный URL не найден». – Latha

ответ

0

Проверьте controller url называется или нет, Также в data parameter вы можете назвать это просто как { ZoneId: value } вместо JSON.stringify({ ZoneId: value }) ,

На стороне сервера get этот параметр с помощью $_POST если вы используете PHP в controller, а также проверить в console, что вы получаете json от server side или нет.

$.ajax({ url: 'FillResources', type: 'POST', 
    data:{ ZoneId: value }, 
    dataType: 'json', contentType: 'application/json', 
    success: function (result) { 
     for (var r in result) { 
      $('#lstResources').append('<option value="' + result[r].Value + '">' + result[r].Text + '</option>'); 
     } 
    } 
}); 
0

Проверьте запрос и ответ в браузере. Вы можете использовать встроенные в IE/Chrome/FF (Firebug) или скрипач. Вероятно, это просто проблема маршрутизации, если это ASP.NET MVC.

В частности, посмотрите, что такое URL-адрес вашего запроса и что такое HTTP-ответ от сервера.

Всегда рекомендуется указывать как контроллер, так и действия в URL-адресах маршрутизации, чтобы избежать таких ошибок.

Еще одна вещь, которую нужно проверить, будет, если функция изменения фактически вызвана? Вы можете поместить console.log перед запросом ajax, чтобы убедиться, что это не так.