Ajax请求无法访问.aspx文件上的方法

时间:2014-09-04 06:23:41

标签: c# asp.net ajax webmethod

我正在尝试调用我的.aspx文件中的方法来调用另一个.aspx文件。我正在使用的文件位于另一个文件夹中,我需要使用javascript访问的文件与此结构类似:

  

根文件夹:
PageMethods.aspx
  SubFolder /
Somefile.aspx

这是我的ajax请求:

    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "/PageMethods.aspx/TagtoVehicle",
        data: "{'colIDBigint': '" + IDBigInt + "', 'colTravelReqIDInt': " + TravelReq +
            ", 'colRecordLocatorVarchar': " + RecordLoc + ", 'colSeafarerIdInt': " + SeafarerId + ", 'colOnOff': " + onoff + ", 'colPortAgentVendorIDInt': " + Vehiclevendor + ", 'UserId': " + userId + "}",
        dataType: "json",
        success: function(data) {
        } ,
        error: function(objXMLHttpRequest, textStatus, errorThrown) {
            alert(errorThrown);
        }
    });

当我运行ajax请求时,它会抛出错误500(内部服务器错误)。

为什么请求不会通过,即使在我的PageMethod.aspx.cs中是这样的:

[WebMethod]
        public static string TagtoVehicle(Int32 colIDBigint, Int32 colTravelReqIDInt, string colRecordLocatorVarchar, Int32 colSeafarerIdInt, string colOnOff, Int32 colPortAgentVendorIDInt,string UserId)
        {

}

什么是触发错误500?

3 个答案:

答案 0 :(得分:1)

你是围绕值的错误引号。就像你有colIDBigint的编码值一样,对所有的重写都是一样的

data: "{'colIDBigint': '" + IDBigInt + "', 'colTravelReqIDInt': '" + TravelReq +
        "', 'colRecordLocatorVarchar': '" + RecordLoc + "', 'colSeafarerIdInt': '" + SeafarerId + "', 'colOnOff': '" + onoff + "', 'colPortAgentVendorIDInt': '" + Vehiclevendor + "', 'UserId': '" + userId + "'}",

更好的是你按照这个字符串化

JSON.stringify({colIDBigint:IDBigInt,colTravelReqIDInt:TravelReq})

就像在数据中添加其他值一样。

答案 1 :(得分:0)

使用完整网址:

url: '<%=ResolveClientUrl("~/PageMethods.aspx/TagtoVehicle")%>',

〜表示路径将从站点的根目录开始。

答案 2 :(得分:0)

错误:由您的数据格式导致500:简单地说,试试这个:

data:{"variable":data, "variable1":data1,...}

Jquery最新版支持这种,你可以试一试!根据我的经验,这种方式更好。祝你好运