Я провел весь день, борясь с этой ошибкой, прочитал почти все статьи и испробовал все подсказки, которые нашел, но все еще не смог заставить ее работать.
Обратите внимание: EnablePageMethod=true внутри ScriptManager, метод является общедоступным, статическим и украшен [WebMethods]
Один и тот же код отлично работает с VS2010 и с пустым проектом в VS2013, но при использовании с Новый проект -> веб-сайт -> веб-формы вывод прикреплен здесь для справки.
Вот мой код.
Код позади:
[System.Web.Services.WebMethod]
public static string GetCurrentTime(string name)
{
return "Hello " + name + Environment.NewLine + "The Current Time is: "
+ DateTime.Now.ToString();
}
JavaScript:
<script type="text/javascript">
function ShowCurrentTime() {
PageMethods.GetCurrentTime(document.getElementById("<%=txtUserName.ClientID%>").value, OnSuccess);
}
function OnSuccess(response, userContext, methodName) {
alert(response);
}
</script>
HTML:
<div>
Your Name :
<asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
<input id="btnGetTime" type="button" value="Show Current Time" onclick="ShowCurrentTime()" />
</div>