ASP.net后台接收Ajax传出的变量,苦试了六小时不成功,只有请大侠出手了!!

telescope 2008-04-23 01:38:12
不知道问题出在哪里,一运行就说:

“/mapApp”应用程序中的服务器错误。
--------------------------------------------------------------------------------

未将对象引用设置到对象的实例。
在网上查找加试验六个小时都没能解决,腰都受不了了,如果这么简单的问题都没解,那我也没法用Ajax了!!请高手相救!!

前台:javascript

<script language="javascript">

var map;
var Pointname;
var longitude;
var latitude;

function createXMLHttpRequest()
{
if(window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest)
{
xmlHttp = new XMLHttpRequest();
}
}


function createQueryString(){
var queryString = "WebFrom1?markname="+escape(Pointname)+"&longitude="+escape(longitude)+"&latitude="+escape(latitude);
queryString = queryString+"×tamp="+ new Date().getTime();
return queryString;
}


function handleStateChange(){
if(xmlHttp.readyState ==4){
if(xmlHttp.status == 200){
alert("成功了");

}
}
}

function sendMark()
{
createXMLHttpRequest();
var queryString = createQueryString();
xmlHttp.open("GET",queryString,true);
xmlHttp.send(null);
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
}
</script>



后台:WebFrom1.aspx.cs

if(!IsPostBack)
{
markname = Request.Params["markname"].ToString();//这个方法不行
longitude = Request.Params["longitude"].ToString();
latitude = Request.Params["latitude"].ToString();

//markname = Request.QueryString["markname"].ToString();//这个也不行
//longitude = Request.QueryString["longitude"].ToString();
//latitude = Request.QueryString["latitude"].ToString();

//markname = Request.Form["markname"].ToString();//这个还不行
//longitude = Request.Form["longitude"].ToString();
//latitude = Request.Form["latitude"].ToString();
Label1.Text = markname;
Label2.Text = longitude;
Label3.Text = latitude;

Response.End();
}


运行结果:


“/mapApp”应用程序中的服务器错误。
--------------------------------------------------------------------------------

未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误:


行 40: //longitude = Request.Params["longitude"].ToString();
行 41: //latitude = Request.Params["latitude"].ToString();
行 42: markname = Request.QueryString["markname"].ToString();
行 43: longitude = Request.QueryString["longitude"].ToString();
行 44: latitude = Request.QueryString["latitude"].ToString();


源文件: f:\aspxproj\mapapp\mapapp\webform1.aspx.cs 行: 42


有效地解决给40分
...全文
169 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
MetaDunDun 2008-04-23
  • 打赏
  • 举报
回复
你的前台,后台代码都是写在WebFrom1.aspx里面的吧?请求是发给当前页面的吧?那sendMark()是在什么时候执行的呢?
cylot 2008-04-23
  • 打赏
  • 举报
回复
上面的例子很详细,我测试过没问题。例子采用的是属性进行判断的。
cylot 2008-04-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 feng5799 的回复:]
C# code
markname = Request.QueryString["markname"].ToString();
longitude = Request.QueryString["longitude"].ToString();
latitude = Request.QueryString["latitude"].ToString();



这几个使用之前先判断下


C# code
if(Request.QueryString["markname"] != null)
{
markname = Request.QueryString["markname"].ToString();
}
if(Request.QueryString["longitude"] != null)
{
longitude = Req…
[/Quote]
可以参考XmlHttp实现无刷新三联动ListBox http://www.cnblogs.com/singlepine/archive/2005/11/07/270615.html
telescope 2008-04-23
  • 打赏
  • 举报
回复
var queryString = "WebFrom1?markname="+escape(Pointname)+"&longitude="+escape(longitude)+"&latitude="+escape(latitude);



var queryString = "WebFrom1.aspx?markname="+escape(Pointname)+"&longitude="+escape(longitude)+"&latitude="+escape(latitude);

我都试了,并且书上就是按前面的方法写的,都是可以的,问题应该不在这里。
如果不安装任何组件,也应该可以吧?
关于判断是否为空,我觉得很好,可现在的问题是没传过来,问题在哪里呢?大家有没有可用的代码段贴上来给个参考
parss 2008-04-23
  • 打赏
  • 举报
回复
我以前碰到过多次类似于 “/mapApp”应用程序中的服务器错误。
原因是地址有误。
MetaDunDun 2008-04-23
  • 打赏
  • 举报
回复
var queryString = "WebFrom1?markname="+escape(Pointname)+"&longitude="+escape(longitude)+"&latitude="+escape(latitude);
这个地址是否有问题呢,说错了大家别怪,呵呵。
feng5799 2008-04-23
  • 打赏
  • 举报
回复

markname = Request.QueryString["markname"].ToString();
longitude = Request.QueryString["longitude"].ToString();
latitude = Request.QueryString["latitude"].ToString();

这几个使用之前先判断下


if(Request.QueryString["markname"] != null)
{
markname = Request.QueryString["markname"].ToString();
}
if(Request.QueryString["longitude"] != null)
{
longitude = Request.QueryString["longitude"].ToString();
}
if(Request.QueryString["latitude"] != null)
{
latitude = Request.QueryString["latitude"].ToString();
}


叶子 2008-04-23
  • 打赏
  • 举报
回复

if(Request.QueryString["markname"]!=null)
{
markname = Request.QueryString["markname"].ToString();
}
if(Request.QueryString["longitude"]!=null)
{
longitude = Request.QueryString["longitude"].ToString();
}
if(Request.QueryString["latitude"]!=null)
{
latitude = Request.QueryString["latitude"].ToString();
}


lovehongyun 2008-04-23
  • 打赏
  • 举报
回复
Request["markname"]
叶子 2008-04-23
  • 打赏
  • 举报
回复
markname = Request.QueryString["markname"].ToString();
"markname"这个值你没有传过来。
telescope 2008-04-23
  • 打赏
  • 举报
回复
解决了,搞清了不少细节,多谢大家帮助,来者有分!!
yjlove51 2008-04-23
  • 打赏
  • 举报
回复
var queryString = "WebFrom1?markname="+escape(Pointname)+"&longitude="+escape(longitude)+"&latitude="+escape(latitude);
queryString = queryString+"×tamp="+ new Date().getTime();
return queryString;

页面传值不能超过120个字符,如果超过IE将会自动截断....
wxg22526451 2008-04-23
  • 打赏
  • 举报
回复
WebFrom1.aspx???
没写错吧,一般都是WebForm1.aspx
zengxie 2008-04-23
  • 打赏
  • 举报
回复
markname = Request.QueryString["markname"].ToString();
"markname"这个值你没有传过来。
Dennis0529 2008-04-23
  • 打赏
  • 举报
回复
学习。。。
telescope 2008-04-23
  • 打赏
  • 举报
回复
我的前台代码都在mapMark.aspx里,后台代码在WebForm1.aspx.cs里,这样可以么?
用户在一个TextBox里输入了文本,然后点击HyperLink,sendMark()放在HyperLink的onclick事件中,我的意图就是把这个文本和另外两个javascript变量值一同送到后台放入数据表.
现在发现数据表中,两个数值参数都正常写入了,但那个TextBox里的中文文本却没传进来,不知是怎么回事.

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧