ASP.NET MVC 接收Jquery AJAX数据对象

在接收常用类型时,String, int 等,可以直接使用同名的变量接收。

如果有是复杂类型,就是form下包含数组对象时,接收时要用Dictionary处理。代码示例如下:

javascript构建时

$.ajax({
...
data: {classNo:3,classNa:'一班', stuList:[{stuNo:'0301',stuNa:'张三'},{stuNo:'0302', stuNa:'李四'}]}
...
});

Model类中

public class ClassInfoModel{
	public String classNo{set;get;}
	public String classNa{set;get;}
	public Dictionary<String, String>[] stuList{set;get;}
}

在Control中取值时,

public ActionResult Index(ClassInfoModel model){
	....
	String stuNo=model.stuList[0]["stuNo"];
	....
	return Json(1);
}

这样就可以了取到相应的数值了。

两个细节:

1)示例中处理的变量都是字符串的,如果是需要数字类型,需要再用Convert处理一下,另外此方法不能使用通用的校验类检查。

2)如果对象更复杂(有三级或更多的结构),那就可能需要Dictionary更多的处理,但本人并未验证。不过当结构更复杂时,不建议用此方法了。最好是把整个Json对象序列化成字符串传到服务端,服务端再反序列化处理。如是从实际操作角度看,当传输的数据如此复杂时,说明界面处理可能需要改进,用户并不一定有耐心填写完这么复杂的表单。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值