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[] stuList{set;get;}
}

在Control中取值时,

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

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

两个细节:

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

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

你可能感兴趣的:(ASP.NET)