- 在您的网站根目录中创建一个新文件夹,名为
asynchronous
- 创建一个新
aspx
页面,addEmail.aspx
并删除除第一行外的所有HTML - 在其中
addEmail.aspx
将代码放在后面,例如:
。
public void Page_Load(...) { insertEmail();}public void inserEmail() { string email = Request["email"],optin = Request["optin"]; string strSQL = "INSERT INTO Emails (emailAddress,optIn) VALUES('" + email.ToString() + "', optin)"; SqlConnection Conn = new SqlConnection(strConnection); SqlCommand Command = new SqlCommand(strSQL, Conn); Conn.Open(); Command.ExecuteNonQuery(); Conn.Close(); // Output Response.Write("email inserted");}- 在具有
.ajax()
调用的主页中,将url
属性更改为
url: "/asynchronous/insertEmail.aspx",
您将
msg在
success: function (msg) {}字符串中email inserted
不过,这是我一直在做的事情,而不是创建ASPX页面,而是使用不包含任何ASP.NET页面周期(加载速度更快)的ASHX(通用处理程序)页面,它是一个简单的页面。
如果要使用a
GenericHandler,则在内部
asynchronous文件夹中创建一个名为的文件
inserEmail.ashx,完整代码为:
public class insertEmail : IHttpHandler{ public void ProcessRequest(HttpContext context) { string email = context.Request["email"], optin = context.Request["optin"]; string strSQL = "INSERT INTO Emails (emailAddress,optIn) VALUES('" + email.ToString() + "', optin)"; SqlConnection Conn = new SqlConnection(strConnection); SqlCommand Command = new SqlCommand(strSQL, Conn); Conn.Open(); Command.ExecuteNonQuery(); Conn.Close(); context.Response.ContentType = "text/plain"; context.Response.Write("email inserted"); } public bool IsReusable { get { return false; } }}并且,记得将您的
url财产更改为
url: "/asynchronous/insertEmail.ashx",
从您的评论中,我意识到您的
data财产也不正确。
正确的是:
data: { "email" : $(".emailConnectTextBox").val(), "optin" : $(".connectCheckbox").val() },您的完整ajax调用应为:
$.ajax({ type: "POST", url: "/asynchronous/insertEmail.ashx", data: { "email" : $(".emailConnectTextBox").val(), "optin" : $(".connectCheckbox").val() }, contentType: "application/json; charset=utf-8", dataType: "json", success: function (msg) { alert(msg.d); }, error: function (msg) { alert('Error:' + msg.d); }});并且您
Response.Write在通用处理程序中也应传递JSON字符串
因此,将tgis更改
context.Response.Write("emailinserted");为context.Response.Write("{d:'email inserted'});就这样。



