2014-11-13 3 views
0

Мне нужно вызвать метод в коде позади с клиентской стороны с помощью json, но метод так и не был вызван, а ошибка «c» пуста. Что я сделал здесь неправильно?вызов функции сервера с клиентской стороны

Client код сторона:

$.ajax({ 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    url: "MyPage.aspx/CheckItem", 
    data: {item: item}, 
    dataType: "json", 
    success: function (result) { 
     if (result) { 
      errorMessage.innerHTML = 'WARNING: Item exists.'; 
      return false; 
     } 
    }, 
    error: function (a,b,c) { 
     alert("error: " + c); 
    } 
}); 

сервера код сторона:

[System.Web.Services.WebMethod] 
public static bool CheckItem(string item) 
{ 
    DataContext dc = new DataContext(); 

    var record = dc.MyTable.Where(x => x.Item == item).FirstOrDefault(); 
    if (record != null) 
     return true; 
    else 
     return false; 
} 
+1

Не следует ли сделать запрос в «MyPage.aspx/CheckItem» вместо «MyPage.aspx/MyMethod»? –

+0

да, я сделал это (это была опечатка) – tweety

+0

где этот код на вашей странице? Вы уверены, что код ajax даже называется вообще? –

ответ

0

Пожалуйста, заключите параметр в кавычки/двойные кавычки. См. Ниже.

  var item = 0; 
      $.ajax({ 
       type: "POST", 
       url: "/WebForm1.aspx/CheckItem", 
       data: '{"item":"' + item +'"}', 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       error: function (errorThrown) { 

        alert(errorThrown.responseText + "what's wrong?" + " " + errorThrown); 
       }, 
       success: function (msg) { 

        alert(msg.d); 
        return false; 
        // Do something interesting here. 
       } 
      }); 
[WebMethod] 
    public static bool CheckItem(string item) 
    { 
     return true; 
    } 
0

Если вы хотите вызвать метод в странице ASP, вы будете нуждаться, чтобы добавить некоторую логику внутри страницы ASP для вызова функции. Вы не можете просто вызвать его прямо из $ .ajax(). Например, ваш Ajax вызов может быть:

$.ajax({ 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    url: "MyPage.aspx", 
    data: { 
     item: item, 
     method: 'CheckItem' 
    }, 
    dataType: "json", 
    success: function (result) { 
     if (result) { 
      errorMessage.innerHTML = 'WARNING: Item exists.'; 
      return false; 
     } 
    }, 
    error: function (a,b,c) { 
     alert("error: " + c); 
    } 
}); 

А потом внутри кода осины, вы бы посмотреть на «метод» переменной формы и вызвать указанный метод.

Смежные вопросы