Extjs4.0利用Json与Asp.net mvc3服务端进行交互

最近刚学习Extjs4,在项目开发过程中遇到了如何把js中的json数据提交到服务端进行数据处理的问题。

交互分二部分:

第一种:返回json,即用js调用服务端的Action,返回json数据,这部分网上有很多资料介绍,大家可以搜一下JsonHelper这个类。
第二种:提交Json,即用js调用服务端的Action,并将json数据提交到服务端。
这里主要介绍第二种情况,根据上传数据的复杂度,又分以下几种情况:
1.上传字符串
Extjs代码:
var data= '丹东一达软件开发有限公司'
Ext.Ajax.request({
method : 'POST',
url : '/Dept/SaveDept',
headers : {
contentType : 'application/json'
},
jsonData : {
Items : data
},
success : function(response) {
},
failure : function(resp, opts) {
}
});
服务端代码:
[HttpPost]
public JsonResult SaveDept(string Items )
{
//这里写代码
}
2.上传实体类

Extjs代码:
var data= {Id:1,DeptName:'软件部'}
Ext.Ajax.request({
method : 'POST',
url : '/Dept/SaveDept',
headers : {
contentType : 'application/json'
},
jsonData : {
Items : data
},
success : function(response) {
},
failure : function(resp, opts) {
}
});
服务端代码:
public class dept
{
public int Id { get; set; }
public string DeptName { get; set; }
}
[HttpPost]
public JsonResult SaveDept(dept Items )
{
//这里写代码
}

3.上传实体类集合
Extjs代码:
var store = g.getStore();
var records_add = store.getNewRecords();
var records_edit = store.getUpdatedRecords();
var data = [];
Ext.Array.each(records_add, function(model) {
data.push(model.data);
});
Ext.Ajax.request({
method : 'POST',
url : '/Dept/SaveDept',
headers : {
contentType : 'application/json'
},
jsonData : {
Items : data
},
success : function(response) {
},
failure : function(resp, opts) {
}
});
服务端代码:
public class dept
{
public int Id { get; set; }
public string DeptName { get; set; }
}
[HttpPost]
public JsonResult SaveDept(List<BLL.dept> Items)
{
//这里写代码
}

小结:基本上花了一天时间,百度和谷歌了很多文章,但都没有找到相关的处理办法,也可能是我搜的关键字有问题吧,我想
所有使用 ExtJs+asp.net mvc的朋友都会遇到这个问题,因此写在这和大家分享一下经验。
从上面的三个小例子可以看出,ExtJs上传的json数据的类型要与服务端接收的类型一致,
Extjs Asp.net Mvc
string string
object model
array list<T>
如此,asp.net mvc会自动的把json数据映射成服务端的变量、对象、对象集合,服务端可以方便的进行数据的业务逻辑处理了。

data.push(model.data); 这段代码,网上不少文章都是这样写 data.push(Ext.encode(model.data)); 我抄下来之后,会发现
里面的中文都变成了乱码,同时,传到服务端也不能正常被反序列化了。教训啊。

由于时间匆忙,写的比较简单,有一定基础的朋友应该能看明白的吧??呵呵,如果还是不懂,可以加我QQ:313366 .

enjoy it .

转载于:https://www.cnblogs.com/edsoft/archive/2011/12/19/2292970.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值