无法获取未定义的空引用的属性“pingInterval”

时间:2016-02-04 08:07:33

标签: javascript c# ajax base64 encode

我提交表单以从数据库中获取对象。

我需要在json字符串中添加varbinary(MAX)type(image)列,并通过WebMethod将其发送到Ajax以在页面中显示该对象的其余属性。所以在类中它的字符串类型而不是byte []类型。

在编码部分,我收到Javascript运行时错误:

  

无法获取未定义的空引用的属性“pingInterval”。

 <form id="form1" runat="server">
   Arrival:
   <input type="text" id="txtArrival" />
        departure:
   <input type="text" id="txtDeparture" />
   Nob:
     <input type="text" id="txtNob" />
     <input type="button" id="btnSubmit" value="Get Rooms" />
 </form>

类别:

public int ID { get; set; }
public string RoomType { get; set; }
public string RoomNumber { get; set; }
public string RoomTitle { get; set; }
public decimal Price { get; set; }
public string ServiceName { get; set; }
public string Photo { get; set; }

的Ajax:

$(document).ready(function () {
    $(function () {
        $("#btnSubmit").click(function () {
            var arrival = $("#txtArrival").val();
            var departure = $("#txtDeparture").val();
            var nob = $("#txtNob").val();

            $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: "WebForm2.aspx/GetRooms",
                data: "{'arrival':'" + arrival + "','departure':'" + departure + "','nob':'" + nob + "'}",
                dataType: "json",
                success: function (data) {
                    alert(data.d);

                },
                error: function (result) {
                    alert("Error!");
                }
            });
        });
    });
});

的WebMethod:

[WebMethod]
        public static string GetRooms(string arrival, string departure, string nob)
        {
            string val = "";
            DateTime d1 = Convert.ToDateTime(arrival);
            DateTime d2 = Convert.ToDateTime(departure);
           int noib=Convert.ToInt32(nob);
            var jSerialize = new JavaScriptSerializer();
            List<Room> lst = new List<Room>();
            using (SqlConnection con = new SqlConnection("Server=.;Database=ResDB;Trusted_Connection=True;"))
            {
                using (SqlCommand cmd = new SqlCommand("roomsAvailable", con))
                {
                    cmd.Parameters.AddWithValue("@arr", d1);
                    cmd.Parameters.AddWithValue("@dep", d2);
                    cmd.Parameters.AddWithValue("@nob", noib);
                    cmd.CommandType = CommandType.StoredProcedure;
                    con.Open();
                    SqlDataReader sr = cmd.ExecuteReader(); ;
                    while (sr.Read())
                    {
                        Room r = new Room();
                        r.ID = Convert.ToInt32(sr["ID"]);
                        //objects..
                        if (sr["Photo"] != System.DBNull.Value)
                        {
                            byte[] p = (byte[])sr["Photo"];
                            r.Photo = Convert.ToBase64String(p);// error here
                        }

                        lst.Add(r);
                        val = jSerialize.Serialize(lst);
                    }
                    con.Close();
                }
            }
            return val;
        }

WebMethod中的此语句中出现错误:

 r.Photo = Convert.ToBase64String(p);

1 个答案:

答案 0 :(得分:0)

将JQuery托管文件更改为更新版本后,

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>

错误消失了!