我正在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();
}
}
获取“未定义”。需要您的帮助
答案 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>