首页 新闻 会员 周边

[在线等] 复杂强类型视图的疑问

0
[已解决问题] 解决于 2014-02-25 17:13

简单的视图模型可以利用controller自动解析实体对象,如果是复杂一点的,有一对多关系的字段怎么处理? 

比如页面内有一个表单对应多个表(使用视图模型组合起来了),还有一个JS创建的动态table对应一个表,需要整体POST提交到controller。

除了用js组装json发回去还有其他解决方案吗?

Y2zz的主页 Y2zz | 菜鸟二级 | 园豆:393
提问于:2014-02-25 10:58
< >
分享
最佳答案
0

写个 ViewModel,把几个独立的 Model 组装起来。

奖励园豆:5
Launcher | 高人七级 |园豆:45045 | 2014-02-25 11:50

 我的问题是复杂视图模型POST提交到controller

Y2zz | 园豆:393 (菜鸟二级) | 2014-02-25 11:52

@Y叔: 一样的。

Launcher | 园豆:45045 (高人七级) | 2014-02-25 13:03

@Launcher: 如果字段不一样用不同的model可以获取,但是table里的tr对应一条记录这个怎么提交,只能用js处理了吧?

Y2zz | 园豆:393 (菜鸟二级) | 2014-02-25 13:30

@Y叔: 如果绑定给页面的是 List<Class1> 类型,显示出来的是不是就是 table 里 tr 一条一条的记录?反过来,如果 table 里是 tr 一条一条的记录,是不是可以用 List<Class1> 来映射?

Launcher | 园豆:45045 (高人七级) | 2014-02-25 13:40

@Y叔: 你用啥来处理,没关系,重要的是你按照 List<Class1> 来序列化成 json 或者 xml  post ,那么服务器就能按照 json 或 xml 反序列化成 List<Class1>。

Launcher | 园豆:45045 (高人七级) | 2014-02-25 13:41

@Launcher: 

假设情况是这样的:

Class A {

  XClass x{get;set;}  // class

     XXClass xx{get;set;}  // class

      IList<xxxClass> xxx{get;set;} 

}

 

[POST]

public void Test(A a) {

     // a 是个空对象,js按json传回来的

}

Y2zz | 园豆:393 (菜鸟二级) | 2014-02-25 16:40

@Y叔: 我教你个方法,http://blog.csdn.net/jacksover/article/details/8163249,然后你抓个包看下请求头的设置和请求内容的格式。比如:Content-type: JSON。

Launcher | 园豆:45045 (高人七级) | 2014-02-25 16:52

@Launcher: 

我用ajax提交的数据

Y2zz | 园豆:393 (菜鸟二级) | 2014-02-25 16:58

@Y叔: 你发出去的请求应该是这样的:

GET http://xxxxxxx/your_mvc/your_controller/Test HTTP/1.1
Content-type: application/json

Content-length: 1234

 

{key:"value",key:"value",key:{key:"value"}}

 

上面这个请求的格式能看懂么?看不懂的话,你用 Fildder 抓个包,随便访问一个网页,看下抓取的包的请求的格式。

Launcher | 园豆:45045 (高人七级) | 2014-02-25 17:05

@Launcher: 改了type 可以了,感谢

Y2zz | 园豆:393 (菜鸟二级) | 2014-02-25 17:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册