+ -
当前位置:首页 → 问答吧 → Jquery如何获取C#的Out参数和Return值

Jquery如何获取C#的Out参数和Return值

时间:2010-10-19

来源:互联网

C# code

   public string GetHouseList(int IndexPage,int PageDataCount,out int TotalCount)
        {
            TotalCount = 0;
            DataClasses1DataContext _DataClasses1DataContext = new DataClasses1DataContext();
            List<CustomHouse> listCustomHouse = new List<CustomHouse> ();
            List<HouseMessage> list = _DataClasses1DataContext.HouseMessage.ToList();
           

            foreach (var item in list.Skip(IndexPage * PageDataCount).Take(PageDataCount).ToList())
            {
                //*****
            }
          TotalCount = list.Count;
          JavaScriptSerializer serializer = new JavaScriptSerializer();
         // Response.Write(serializer.Serialize(listCustomHouse)); 该方法除外
          return serializer.Serialize(listCustomHouse);
        }




我要在Jquery中获取输出参数TotalCount值和return serializer.Serialize(listCustomHouse)的返回值;
JScript code

    function Button1_onclick() {
            var tbody = "";
            $.ajax({
                type: "POST",
                url: "Test.aspx",
                data: { ajax: "GetHouseList",IndexPage:1,PageDataCount:3,TotalCount:??? },
                success: function (json) {
                    $.each(json, function (i, n) {
                        var trs = "";
                        trs += "<tr><td><a href='#'>" + n.Title + "</a></td><td>" + n.Id + "</td><td>" + n.HireWay + "</td><td>" + n.ResidentialAreas + "</td></tr>";                       
                        tbody += trs;
                    });
                    $("#productTable").append(tbody);
                }
                , dataType: "json"
            });
        }

作者: liushengpiaoxu   发布时间: 2010-10-19

CSS code
// Response.Write(serializer.Serialize(listCustomHouse)); 该方法除外
return serializer.Serialize(listCustomHouse);
将这个返回值显示在页面上即可
也可以把值放在Request作用域保存,然后直接传递给赋给js。然后eval转换成对象即可

作者: IBM_hoojo   发布时间: 2010-10-19

引用 1 楼 ibm_hoojo 的回复:
CSS code
// Response.Write(serializer.Serialize(listCustomHouse)); 该方法除外
return serializer.Serialize(listCustomHouse);
将这个返回值显示在页面上即可
也可以把值放在Request作用域保存,然后直接传递给赋给js。然后eval转换成对象即可

能具体说一下:把值放在Request作用域保存,然后直接传递给赋给js。然后eval转换成对象即可
吗?谢谢

作者: liushengpiaoxu   发布时间: 2010-10-19

CSS code
java中值是可以放在request.setAttribute("a", "{success: true}");
然后forward转发到一个页面
在这个页面中就可以用
var temp = "<%=request.getAttribute("a")%>"
alert(eval(temp));

作者: IBM_hoojo   发布时间: 2010-10-19

使用return返回的数据需要ms的框架或者ajaxpro等类似的组件

jq只能接收response.write输出的内容,所以你需要在test.aspx中的Page_Load事件中接收ajax发送的参数,判断下是否ajax请求,然后response.write输出GetHouseList的返回值
JScript code

//这句语法有问题,TotalCount出错
data: { ajax: "GetHouseList",IndexPage:1,PageDataCount:3/*,TotalCount:??? */},
C# code
protected void Page_Load(object sender,EventArgs){
  if(Request.Form["ajax"]=="GetHouseList"){
    Response.Write(GetHouseList(int.Parse(Request.Form["indexpage"]),int.Parse(Request.Form["PageDataCount"]));
    Response.End();//========
  }
}
public string GetHouseList(int IndexPage,int PageDataCount/*,out int TotalCount*/)
        {
            TotalCount = 0;
            DataClasses1DataContext _DataClasses1DataContext = new DataClasses1DataContext();
            List<CustomHouse> listCustomHouse = new List<CustomHouse> ();
            List<HouseMessage> list = _DataClasses1DataContext.HouseMessage.ToList();
           

            foreach (var item in list.Skip(IndexPage * PageDataCount).Take(PageDataCount).ToList())
            {
                //*****
            }
          //TotalCount = list.Count;//不需要TotalCount
          JavaScriptSerializer serializer = new JavaScriptSerializer();
         // Response.Write(serializer.Serialize(listCustomHouse)); 该方法除外
          return serializer.Serialize(listCustomHouse);
        }

作者: showbo   发布时间: 2010-10-19

热门下载

更多