Web方法未调用

时间:2019-04-15 13:42:46

标签: c# webmethod

我正在C#中使用Web方法,并通过Ajax调用该Web方法。但是未调用Web方法。

我需要使用c#方法使用asp.net动态加载图表。因此,我已使用Web方法与客户端进行交互。请查看以下代码。我的网络方法未调用

Aspx Page:

<script src="scripts/jquery-1.3.2.min.js" type="text/javascript"></script>
<script type = "text/javascript">
function ShowCurrentTime() {
    $.ajax({
        type: "POST",
        url: "CS.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> 
</head>
<body style = "font-family:Arial; font-size:10pt">
<form id="form1" runat="server">
<div>
Your Name : 
<asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
<input id="btnGetTime" type="button" value="Show Current Time" 
    onclick = "ShowCurrentTime()" />
</div>
</form>
</body>

C#代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;
using System.Data;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

[System.Web.Services.WebMethod]
public static string GetCurrentTime(string name)
{
    return "Hello " + name + Environment.NewLine + "The Current Time is: " 
        + DateTime.Now.ToString();
}
}

获取“未定义”。需要您的帮助

3 个答案:

答案 0 :(得分:1)

您从网页上将其称为POST,但在控制器上是GET(默认设置)

添加[HttpPost]属性可将ajax调用修复或更改为GET(可能更好)。

答案 1 :(得分:0)

jquery语法有问题。正确的语法应如下所示。 请尝试以下更正的代码,让我知道。

<script src="scripts/jquery-1.3.2.min.js" type="text/javascript"></script>
<script type = "text/javascript">
function ShowCurrentTime() {
    $.ajax({
        type: "POST",
        url: "CS.aspx/GetCurrentTime",
        data: {name: $("#<%=txtUserName.ClientID%>").val()},
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: OnSuccess,
        failure: function(response) {
            alert(response);
        }
    });
}
function OnSuccess(response) {
    alert(response);
}
</script> 

答案 2 :(得分:-1)

您可以将以下行添加到web.config代码中吗?这些行以下是到达和获取协议:

 <protocols>
    <add name="HttpGet"/>
    <add name="HttpPost"/>
  </protocols>