我有一个Web表单项目,我正在尝试自学如何手动POST以使用ajax从页面发送和接收数据,就像在后端代码中执行它一样。我相信我已走上正轨,但我收到500内部服务器错误。
我已经检查了事件查看器,并且没有看到任何错误,并且在page_load和application_error中都有断点,这些断点都没有被击中。由于这是我的第一个Web处理程序,我可能犯了一个愚蠢的错误,但我按照一些指南来创建它。基本上,我刚刚创建了一个新的Web表单,添加了对System.Web.Services的引用,并在方法声明之前包含了[WebMethod]属性。
如果有人有任何建议,那将是非常好的,非常感谢。
这是我的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Services;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace YODA.Code
{
public partial class myekc_api : BusinessLogicLayer.UserPage
{
protected void Page_Load(object sender, EventArgs e)
{
if(Request.QueryString.Count > 0)
{
string innerHtml = "<table>";
foreach (string s in Request.QueryString.AllKeys)
innerHtml += string.Format("<tr><td>{0}</td><td>{1}</td></tr>", s, Request.QueryString[s]);
}
}
[WebMethod]
public static string GettingStartedDepartments(List<string> departments)
{
string queryString = "?";
int i = 1;
foreach(string s in departments)
{
if (i == 1)
queryString += string.Format("department{0}={1}", i.ToString(), s);
else
queryString += string.Format("&department{0}={1}", i.ToString(), s);
}
return queryString;
}
[WebMethod]
public static string GettingStartedDepartments(string departments)
{
return departments;
}
}
}
我添加了第二种测试方法,因为我不确定我是否正确发送数据,因此它会被解释为List。
这是ajax:
$("#btnSubmitDepartments").click(function() {
var txaVal = $("#txaDepartments").val();
var list = $("#txaDepartments").val().split('\n');
var jsonText = JSON.stringify({ list: list});
console.log($("#txaDepartments").val());
$.ajax({
type: "POST",
url: "http://localhost:57184/Code/api.aspx/GettingStartedDepartments",
//data: jsonText,
data: txaVal,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data) { window.location.replace("http://localhost:57184/Code/api.aspx/GettingStartedDepartments".append(data.d)) },
error: function(data) { alert("Error!") }
})
});
再次感谢,我真的很感激任何帮助。 安迪