首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Ajax >

$.post参数在一般处理程序中接收有关问题

2012-04-24 
$.post参数在一般处理程序中接收问题无法再一般 处理程序中接收到参数action,在这里把所有代码发出,是因为

$.post参数在一般处理程序中接收问题
无法再一般 处理程序中接收到参数action,在这里把所有代码发出,是因为在asp.net版本没的到解决,所以发全部代码,大哥大姐们帮忙啊,谢谢
前台代码:

HTML code
<html xmlns="http://www.w3.org/1999/xhtml"><head>   <title></title>   <script src="js/jquery-1.4.2-vsdoc.js" type="text/javascript"></script>   <script src="js/jquery-1.4.2.js" type="text/javascript"></script>   <script type="text/javascript">           $(function () {   $.post("WSXFY.ashx", {"action":"getpagecount" }, function (data, status) {   for (var i = 1; i <= data; i++) {   var td = $("<td><a href=''>" + i + "</a></td>");   $("#trPage").append(td);   }   });     });   $("#trPage td").click(function (e) {   e.preventDefault();   $.post("WSXFY.ashx", { "action": "getpagedata", "pagenum": $(this).text() },   function (data, staus) {   var comments = $.parseJSON(data);   $("#ulComment").empty();   for (var i = 0; i < comments.length; i++) {   var comment = comments[i];   var li = "<li>" + comment.id + comment.name + comment.Development + comment.Note + comment.Datetime + "</li>";   $("#ulComment").append(li);   }   });   });         </script></head><body><div ><ul id="ulComment"></ul><table><tr ></tr></table></div></body></html>

后台代码:
C# code
<%@ WebHandler Language="C#" Class="Handler" %>using System;using System.Web;using System.Data;using System.Data.Sql;using System.Data.SqlClient;using System.Configuration;using System.Web.Script.Serialization;using System.Collections.Generic;public class Handler : IHttpHandler {       public void ProcessRequest (HttpContext context) {   context.Response.ContentType = "text/plain";   // string action=context.Request["action"];//无法获取action的值   //string action=context.Request.Form["action"];   // string action=context.Request.QueryString["action"];   string action = context.Request.Params["action"];   // string action = "getpagedata";   string pagenum = context.Request["pagenum"];//无法获取pagenum的值   //string pagenum = "1";       int pagecount;//总页数   if (action == "getpagecount")   {   string cmdString = @"select count(*) from Table1";   using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))   {   using(SqlCommand cmd = new SqlCommand(cmdString, conn))   {   conn.Open();   int count =Convert.ToInt32(cmd.ExecuteScalar());   pagecount = count/10;   }       }   if (pagecount % 10 == 0)   {   pagecount++;   }   context.Response.Write(pagecount);   }   else if (action == "getpagedata")   {   string cmdString = @"select * from (select id ,name,Development,Note,Datetime,Row_Number()over(order by id) as rownum from table1)t where t.rownum>=@pagenum*10-9 and t.rownum<=@pagenum*10";   using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))   {   using (SqlCommand cmd = new SqlCommand(cmdString, conn))   {   conn.Open();   cmd.Parameters.Add("@pagenum",pagenum);   SqlDataAdapter da = new SqlDataAdapter(cmd);   DataSet ds = new DataSet();   da.Fill(ds);           List<comment> list = new List<comment>();   foreach (DataRow myRow in ds.Tables[0].Rows)   {       list.Add(new comment() { id=myRow["id"].ToString(),name=myRow["name"].ToString(),Development=myRow["Development"].ToString(),Note=myRow["Note"].ToString(),Datetime=myRow["Datetime"].ToString() });   }   JavaScriptSerializer jss = new JavaScriptSerializer();   context.Response.Write(jss.Serialize(list));           }   }   }           }         public bool IsReusable {   get {   return false;   }   }       public class comment   {   public string id { get; set; }   public string name { get; set; }   public string Development { get; set; }   public string Note { get; set; }   public string Datetime { get; set; }       }} 



[解决办法]
你用firebug看一下,请求确实发出并带有参数了?
[解决办法]
直接访问
WSXFY.ashx?action=getpagedata&pagenum=1
看是否有值
[解决办法]
1.$("#trPage").append(td)此句是找到ID为trPage的元素,你页面上没有这个元素
2.i <= data
目测你在C#中反序列化一个泛型列表,这样传回客户端是一个JSON数组,那么你应该写i<data.length


另外,你在项目中调试,设置断点,然操作页面,在服务器端是可以调试的,包括在客户端你也可以用chrome或者firebug调试。
在一个全程可调试的环境中,很容易就可以解决你的问题。

热点排行