尝试在本地测试WebMethod和ajax调用,并获得500内部服务器错误

时间:2015-06-26 17:55:54

标签: jquery asp.net ajax webmethod

我有一个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!") }
    })
});

再次感谢,我真的很感激任何帮助。 安迪

0 个答案:

没有答案