2013-08-02 2 views
2

Мой код позади:Вызов кода позади метода в JQuery, не находя метод

[WebMethod] 
public bool accountExists(string username, string password) { 
//code... 
} 

Мой JQuery:

$.ajax({ 
     type: "POST", 
     url: "MyPage.ascx/accountExists", 
     data: JSON.stringify({ username: txtUsername.val(), password: txtPassword.val()}), 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function(msg) { 
     alert(msg.d) 
     }, 
     error: function(msg) { 
     alert("ERROR: " + msg.d) 
     } 
    }); 

Я всегда достигают предупреждение, где он говорит "ERROR: " + msg.d.

MyPage.ascx находится в папке «Элементы управления», поэтому я попытался установить url: "Controls/MyPage.ascx/accountExists" без каких-либо изменений.

+0

Ну, что говорит об ошибке? – Amberlamps

+0

Не могу не заметить, что вы используете .ascx. Вы не можете напрямую вызвать пользовательский элемент управления, вы должны включить его в страницу .aspx. – CodingIntrigue

+0

@Amberlamps ОШИБКА: False. Но неважно, что такое вход, даже если это правда, это ложь. Но когда я отлаживаю это, я никогда не достигаю аккаунтов, кроме случаев, когда страница сначала загружается. И я не запускаю его в Page_Load – Mathias

ответ

2

Методы страницы ASP.NET AJAX предназначены для работы внутри .aspx страниц, а не .ascx элементов управления пользователя.

Переместите логику WebMethod на страницу .aspx и обновите вызов AJAX через jQuery.

+0

Я перевел accountExists в Default.aspx.cs и изменил URL-адрес в ajax-вызове на «Default.aspx/accountExists », и теперь я получаю сообщение« ERROR: undefined ». Я также попытался настроить URL-адрес на «../Default.aspx/accountExists», ничего не изменил. – Mathias

+0

Можете ли вы использовать некоторые инструменты для разработчиков браузера (инструменты разработчика Chrome, Firebug (Firefox) или инструменты F12 (IE)), чтобы увидеть, есть ли очевидная ошибка в вашем запросе AJAX для WebMethod? –

+0

Хм, я отлаживал VS вместо этого и обнаружил, что, хотя отображается «ERROR: undefined», после этого он разрывается на функцию «AccountExists». Так как в нем выполняется учетная запись, после вызова ajax считается, что она не удалась. – Mathias

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