首页 新闻 会员 周边 捐助

jQuery 中的ajax事件问题

0
悬赏园豆:5 [已解决问题] 解决于 2009-06-28 09:37
<pre>html &lt;input id="Text2" type="text" /&gt; &lt;input id="Button19" type="button" value="Ajax事件" onclick ="ajaxx();"/&gt; &lt;/p&gt;&lt;div id="showResult" style="float:left; width: 427px;"&gt;&lt;/div&gt; js function ajaxx() { // $.ajax({ // type: "GET", // url: "Default2.aspx", // dataType: "html", // data: "name=" + $("#Text2").val(), // // success: function(msg) { // $("#showResult").html(msg); // $("#showResult").css("color", "red"); // }, // complete: function(XMLHttpRequest, textStatus) { // //隐藏正在查询图片 // // $('#showResult').text("name"); // }, // error: function(XMLHttpRequest, textStatus, errorThrown) { // alert(errorThrown);返回的是undefined // } // }); $.get("Default2.aspx", { name: "aa"}, function(i) { alert("Data Loaded: " + i); $('#Text2').val(i); }); } Default2.aspx protected void Page_Load(object sender, EventArgs e) { string aa = Request.QueryString["name"].ToString(); Response.Write("sss"+aa); } 为怎么返回的是返回的是undefined而不是("sss"+aa) </pre> <p>&nbsp;</p>
余韬的主页 余韬 | 初学一级 | 园豆:190
提问于:2009-06-23 14:26
< >
分享
最佳答案
0

问题是这样的, asp.net不会像你想的那样只给你输出一个字符串, 即使没有问题,它输出的也应该是这样

 

sssaa
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>
Untitled Page
</title>
</head>
<body>
sssaa
<form name="form1" method="post" action="Default2.aspx?name=aa" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value=
"/wEPDwUJNzgzNDMwNTMzZGRYppQSgTHiKbHdEkT8ihhiF7y3kw=="
/>
</div>
</form>
</body>
</html>

一般我们都不会用aspx也去实现后台的调用,一个可取的方案是通过自定义的httphandler模块(ashx文件)像这样去从后台返回我们要的东西.

 

public void ProcessRequest(HttpContext context)
{
string result = String.Empty;

if (Common.GetParameterValue(context, "action", out action))
{
switch (action)
{
case "get":
//
break;
case "getalert":
//
break;
case "save":
//
break;
case "addticker":
//
result=;
break;
}
}
context.Response.ContentType
= "text/plain";
context.Response.Write(result);
context.Response.End();
}

 

 

另一些解决方案可以实现类似的方法调用,
  1. 通过(.aspx)后台的静态方法,和asp.net ajax一样要标注webmethod属性.
  2. 直接消费webservice(asmx);

具体可以参见这两篇文章.

Using jQuery to directly call ASP.NET AJAX page methods | Encosia
Using jQuery to Consume ASP.NET JSON Web Services | Encosia


try{Phoenix} | 初学一级 |园豆:95 | 2009-06-23 19:54
其他回答(2)
0

请问是哪里返回的啊。不解。你alert一下。

     $("#showResult").html(msg);?




Jerry Qian | 园豆:19 (初学一级) | 2009-06-23 15:27
0

dataType不应该是html,可以试试json

Gray Zhang | 园豆:17610 (专家六级) | 2009-06-23 17:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册