后台返回值方式

本文介绍了三种后台向前端返回值的方法:1) 返回字符串;2) 返回对象,通过JsonConvert序列化;3) 返回List集合,转换为JObject。通过示例代码详细展示了ASP.NET后台如何处理和封装数据,并在前端JavaScript中解析使用,特别是与EasyUI Datagrid的结合应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上午:
后台返回值方式
第一种:value为字符串
后台程序:
             //DTO_Uniform _dto = new DTO_Uniform();
             //_dto.IsSuccess = true;
             //_dto.value = "123";
             //return _dto;
前台js代码:
              var  url =  "HandlerTest.ashx" ;
            var  serverParams = { test:  "测试.jpg"  };
           var  ajaxParams = {
        serverUrl: "BS_Test/doTest" ,
        serverParam: JSON.stringify(serverParams)
                        };
     var  data = CommonAjaxRequest(url, ajaxParams);
alert(data);


第二种:生成的是一个对象
  后台程序:
            #region  返回对象的
             DTO_Uniform  _dto =  new  DTO_Uniform ();
             Test  t =  new  Test (  "test1" );
             //JObject jobdy = new JObject();
             //jobdy.Add(new JProperty("test",JsonConvert.SerializeObject(t)));
            _dto.IsSuccess =  true ;
            _dto.value =  JsonConvert .SerializeObject(t);
             return  _dto;
            #endregion
前台js
var  url =  "HandlerTest.ashx"  ;
     var  serverParams = { test:  "测试.jpg"  };
     var  ajaxParams = {
        serverUrl:  "BS_Test/doTest" ,
        serverParam: JSON.stringify(serverParams)
    };
     var  data = CommonAjaxRequest(url, ajaxParams);
     var  str = data.value;
     var  json = JSON.parse(str); //得到的直接是json传中对应的值   例如{"A":"Test1"}得到的就是Test1
    alert(str);


第三种:后台得到的是List集合
后台:
            DTO_Uniform  _dto =  new  DTO_Uniform ();
            _dto.IsSuccess =  true ;
             List <  Test > list =  new  List <  Test >();
             Test  a1 =  new  Test (  "test1" );
             Test  a2 =  new  Test (  "test2" );
            list.Add(a1);
            list.Add(a2);
             JObject  jobj =  new  JObject ();
            jobj.Add(  "test" ,  JArray  .FromObject(list));
            _dto.value = jobj.ToString();

前台:
      var  url =  "HandlerTest.ashx" ;
     var  serverParams = { test:  "测试.jpg"  };
     var  ajaxParams = {
        serverUrl:  "BS_Test/doTest" ,
        serverParam: JSON.stringify(serverParams)
    };
     var  data = CommonAjaxRequest(url, ajaxParams);
     var  str = data.value;
     var  json = JSON.parse(str);
    alert(JSON.stringify(json)); //弹出的是{"test":[{"A":"test1"},{"A":"test2"}]}

下午
新框架与easyui datagrid结合测试例子
页面
注意的地方:因为js中有运用一些东西,所以必须要引入的东西有:
  < link  href  ="../JSLibrary/jquery-easyui/themes/default/easyui.css"  rel ="stylesheet"  />
     < link  href  ="../JSLibrary/jquery-easyui/themes/icon.css"  rel  ="stylesheet"  />
     < script  src  ="../JSLibrary/jquery-easyui/jquery.min.js"></  script >
     < script  src  ="../JSLibrary/jquery-easyui/jquery.easyui.min.js"></  script >
     < script  src  ="Test.js"></ script >
     < script  src  ="../AjaxToWcf/AjaxToWcf.js"></  script >
     < script  src  ="../AjaxToWcf/json2.js"></  script >
     < script  src  ="SYS_MultiLanguage.js"></  script >
     < script  src  ="../Common/MessageBox.js"></  script >
js代码:
/// Test.html页面 入口函数
$( function  () {
     // SYS_LANGUAGE.SetSYSLanguage();
    isReady();
});

function  isReady()
{
     var  url =  "BS_Test/doDataGridTest" ;
     var  ajaxParams = {
        serverUrl: url,
        serverParam:  '{}'
    };
     var  data = CommonAjaxRequest(  null , ajaxParams);
     var  str = data.value;
     var  str2 = JSON.parse(str);
     var  total = str2.total;
     var  rows = str2.rows;
     var  json = { total: total, rows: rows };
     //loaddate
    $( '#dg' ).datagrid(  'loadData' , json);
}


wcf 程序:
IService
:       [ OperationContract ]
        [  WebInvoke (UriTemplate =  "doDataGridTest" , Method =  "POST"  ,
            RequestFormat =  WebMessageFormat .Json, ResponseFormat =  WebMessageFormat .Json,
            BodyStyle =  WebMessageBodyStyle .WrappedRequest)]
         DTO_Uniform  doDataGridTest();
Service
 #region   对象
         private  BLL_Test  m_BS_Test =  IocHelper .Resolve<  BLL_Test >();
        #endregion
public  DTO_Uniform  doDataGridTest()
       {
            DTO_Uniform  _dto =  new  DTO_Uniform ();
           _dto.IsSuccess =  true ;
            string  str = m_BS_Test.getAll();
           _dto.value = str;
            return  _dto;
       }


Business Logic
BLL_Test:
 #region  对象
         private  ISTA_BZ  ista_bz {  get ;  set ; }
        #endregion

        #region  公共函数
         public  BLL_Test(  ISTA_BZ  ista_bz)
        {
             this .ista_bz = ista_bz;
        }
        #endregion

        #region  公共方法
         public    string  getAll()
        {
             string  str =  "" ;
             try
            {
                 List <  STA_BZInfo > list = ista_bz.GetAll();
                 JObject  objc =  new  JObject ();
                objc.Add(  new  JProperty (  "total" , list.Count()));
                objc.Add(  new  JProperty (  "rows" , JArray  .FromObject(list)));
                str=objc.ToString();
            }
             catch  (  Exception  ex)
            {
                 throw  new  Exception (  "" , ex);
            }
             return  str;
        }
        #endregion




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值