У меня возникли проблемы с созданием WebMethod для работы. Все настроено правильно, и я упростил его до наименьшего примера.AJAX не запускает WebMethod, но возвращает всю HTML-страницу при успешном завершении
АЯКС:
function DoAJAX() {
$.ajax({
type: 'POST',
url: 'faq.aspx/DoAJAX',
data: "AJAX Test",
dataType: 'text',
success: function (data, status) {
debugger;
alert(status + " " + data)
},
error: function() {
alert("error!")
}
});
}
WebMethod (в faq.aspx.cs, используя System.Web.Services и общественности статической):
[WebMethod]
public static string DoAJAX(string foo) {
return foo;
}
}
HTML (faq.aspx с ScriptManager и EnablePageMethods)
<%@ Page Title="" Language="C#" MasterPageFile="~/MP.Master" AutoEventWireup="true" CodeBehind="faq.aspx.cs" Inherits="Lottery.faq" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"></asp:ScriptManager>
<input type="button" value="AJAX" onclick="DoAJAX()" />
</asp:Content>
При нажатии на вызов AJAX возвращает успех со следующим содержимым в данных: http://pastebin.com/X0Vke0qj
точку останова в DoAJAX()WebMethod так и не был достигнут.
Почему не возвращают «Test AJAX» строка, которая была отправлена, почему WebMethod не попал?
Я только попробовал, и я получаю то же самое ответ (data = целостный HTML-документ). И точка останова в WebMethod не запускается. – Tiago
В вашем 'web.config' у вас также есть' ScriptModule', зарегистрированный в 'httpModules'? Если это не будет, это тоже не сработает. – Scott
Скотт: У меня нет ScriptModule в web.config (довольно пусто), можете ли вы более подробно объяснить, что добавить? Также ваше предыдущее предложение не сработало. («error!») – Tiago