从View向Controller传递复杂类型Json
mvc给我们提供多种controller中读取view数据的方法
1.从Ruquest["name"]中直接读取
2.将表单中name名称直接写在Action的参数列表中
3.将表单中一组name组装成一个类作为Action的参数
其实实质上都是用表单中的name将数据传输到后台.只不过后两点mvc用反射等一些技术简化了我们的操作
但是很多时候回传递更复杂的数据,第三种我感觉是最灵活的,结合json传递数据变得非常简单
类
public class Good { public string Name { get; set; } public decimal Price { get; set; } } public class Order { public string Direction { get; set; } public string ReceivePerson { get; set; } public List<Good> Goods { get; set; } }
Action
[AcceptVerbs(HttpVerbs.Post)] public ActionResult temp([Form]Order orderItem) { return View(); }
Json
var arr = []; var Dir = "江苏"; var Rec = "张三"; var obj1 = new Object(); obj1.Name = "商品1"; obj1.Price = "价格1"; var obj2 = new Object(); obj2.Name = "商品2"; obj2.Price = "价格2"; arr.push(obj1, obj2); var ajaxData = { Direction: dir, ReceivePerson: Rec, Goods: arr };
最后可以通过ajax提交到后台,做一个笔记,发现其实View向Controller传递数据的核心还是name,名称一致
加油,相信自己,明天会更好!