Ajax 在 ASP .NET c# 中使用 JQuery

Ajax using JQuery in ASP .NET c#

我正在尝试在 asp .net c# 中使用 JQuery ajax。我使用的代码是 ...

HTML 表格:

<div>
    Your Name :
    <asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
    <input id="btnGetTime" type="button" value="Show Current Time"
     onclick = "ShowCurrentTime()" />
</div>

JQuery 部分:

<script type="text/javascript">
    function ShowCurrentTime() {
        //alert(window.location.pathname);
        $.ajax({
            type: "POST",
            url: "Display.aspx/GetCurrentTime",
            data: '{name: "' + $("#< %=txtUserName.ClientID%>")[0].value + '" }',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: OnSuccess,
        failure: function (response) {
            alert(response.d);
        }
    });
}
function OnSuccess(response) {
    alert(response.d);
}
</script>

CS 部分:

    using System.Web.Services;

    This part below is under partial class which inherits from Page class.

   [WebMethod]

    public static string GetCurrentTime(string name)
    {

     return "Hello "+ name +"! " + Environment.NewLine + "The Current Time is: "
            + DateTime.Now.ToString();
    }

问题: 它不工作。如果我缺少任何设置或任何名称 space,请告诉我。或者任何东西。 URL 我输入 ajax 调用是正确的,因为我通过 var 路径名 = window.location.pathname;我在调用 ajax 时也提供了数据。

可能会改变

 failure: function (response) {
        alert(response.d);
    }

 error: function (response) {
        alert(response.d);
    }

将有助于发现问题。 我在文档中没有看到失败回调 - http://api.jquery.com/jquery.ajax/

JQuery 有一些错误

    $("#< %=txtUserName.ClientID%>")[0].value

需要

    $("#<%=txtUserName.ClientID%>")[0].value

    $("#<%=txtUserName.ClientID%>").val() 

我可以立即看到的东西:

  1. $.ajax 不接受 "failure" 参数,而是 "error." Even 那么,您应该改用 .done() 和 .fail() (请参阅 http://api.jquery.com/jQuery.ajax/)
  2. 您的错误处理函数将在您的页面方法时被触发 抛出异常。第一个参数是一个 jqXHR 对象,而不是一个 JSON 来自 .NET 的响应(参见与 #1 相同的 link)。
  3. 您的页面方法不应位于页面 class 下方,而应位于页面内。