2016-10-06 2 views
0

Недавно я столкнулся с проблемой при вызове ASP.NET POST Web Method из jQuery AJAX. Тем не менее, каждый раз, когда я запускаю эту программу вызов AJAX отвечает error: undefinedAjax call to asp.net Метод POST

var departmentBO = { 
    dept_id: "", 
    dept_name: "", 
    msg: "", 
    isException: "" 
}; 

function updateDepartment() { 
    $.ajax({ 
     type: 'POST', 
     dataType: 'json', 
     async: false, 
     data: JSON.stringify(departmentBO), 
     url: 'AdminPanel.aspx/UpdateDepartmentNameJSON', 
     cache: false, 
     contentType: 'application/json; charset=utf-8', 
     success: function (data) { 
      alert('Department Name Updated'); 
     }, 
     error: function (xhr, err) { 
      alert(xhr.responsetext); 
     } 
    }); 
} 
[WebMethod] 
public static string UpdateDepartmentNameJSON(DepartmentsBO departmentBO) 
{ 
    string jsonOutput = null; 
    try 
    { 
     jsonOutput = JsonConvert.SerializeObject("It is Working"); 
    } 
    catch (Exception ex) 
    { 
    } 
    return jsonOutput; 
} 

отдела BO Класс:

public class DepartmentsBO 
{ 
    public string dept_id { get; set; } 
    public string dept_name { get; set; } 
    public string msg { get; set; } 
    public Boolean isException { get; set; } 
} 

Что мне не хватает? Можете ли вы мне помочь в этом сценарии.

+1

Пожалуйста, удалите 'async: false'. Это считается ужасной практикой, поскольку он блокирует браузер до тех пор, пока запрос не завершится. Свойства объекта 'departmentBO', которые вы отправляете, точно соответствуют свойствам вашего класса' DepartmentsBO'? –

+0

Он работает «является допустимым выходом json? Я не думаю, что так – madalinivascu

+0

вам нужно сначала преобразовать ваш jsonOutput в JSON, а затем вернуть его. – Mark

ответ

0

пытаются заменить данные с

data: "{departmentBO : " + JSON.stringify(departmentBO) + "}", 
0

Я просто изменить переменную, как это и он начинает работать

var departmentBO = { 
       "dept_id" : "", 
       "dept_name" : "", 
       "msg" : "", 
       "isException" : "" 
      }; 

Также не существует никакого влияния на удаление асинхр: ложные

+0

Я тоже изменил его, но метод все равно не звонит. – jchoudhury

0

после нескольких попыток, что фактически решило мою проблему, я изменил параметры AJAX, как показано ниже:

  $.ajax({ 
       type: 'POST', 
       dataType: 'json', 
       data: JSON.stringify({ "departmentBO": departmentBO }), 
       url: 'AdminPanel.aspx/UpdateDepartmentNameJSON', 
       cache: false, 
       contentType: 'application/json; charset=utf-8', 
       success: function (data) { 
        alert('Department Name Updated'); 
       }, 
       error: function (xhr, err) { 
        alert(xhr.responsetext); 
       } 
      });