未捕获的TypeError:无法读取属性'值'为null

时间:2016-03-10 09:00:11

标签: javascript c# jquery asp.net ajax

您好我正在开发一个ASP.NET页面,我想使用AJAX从数据库中查看数据

我所做的是创建了以下C#方法:

[System.Web.Services.WebMethod, ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = false)]
public static void ViewData(string contNumber, string BookingNo)
{
    if (contNumber != "" && BookingNo != "")
    {
        string container = contNumber;
        string booking = BookingNo;

        db.SelectData(container, booking);
        HttpContext.Current.Response.Write("IN!!"+ booking);
    }
}

然后我使用AJAX调用此方法,这里是代码:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script

        function View() {

            var container = document.getElementById("#<%=contNoTxtBox.ClientID%>").value;
            var booking = document.getElementById("#<%=bookingNoTxtBox.ClientID%>").value;

          //  var cont = container.value;
         //   var book = booking.value;

            $.ajax(
                {

                    type: "POST",
                    url: "VGMForm.aspx/ViewData",
                    data: '{contNumber: "' + $(container) + '", BookingNo: "' + $(booking) + '"}',
                    contentType: "application/json; charset=utf-8",
                    dataType: "json"

                });


        }

在我的HTML页面中,我使用以下代码调用该函数:

<input id="Button1" type="button" value="button" onclick="View()" />

但是,当我点击按钮时,收到以下错误:

  

未捕获的TypeError:无法读取属性&#39;值&#39;为null

我不确定导致此错误的原因是什么,原因是什么以及如何解决?

2 个答案:

答案 0 :(得分:0)

部分getElementById会返回null

  document.getElementById("#<%=contNoTxtBox.ClientID%>")

  document.getElementById("#<%=bookingNoTxtBox.ClientID%>")

答案 1 :(得分:-1)

我能够通过从脚本中删除.ClientID来解决它:

var container = document.getElementById("contNoTxtBox").value;
 var booking = document.getElementById("bookingNoTxtBox").value;