您的位置:首页 > 其它

.net使用mvc模式开发web应用 模型与视图间的数据处理

2016-12-18 20:43 471 查看

http://www.cnblogs.com/JeffreyZhao/archive/2009/02/27/mvc-use-strong-type-everywhere.html#3427764 本文来自于

主要讲到尽可能使用强类型作为action与view间的数据传递介质 不使用viewdata

为每一个视图建立一个数据传递Molde

缘由:

1.使用ViewData的坏处是必须使用字符串作为键进行访问。字符串是什么?是常量。分散在各处的常量是维护性的大敌,而使用ViewData则几乎无可避免地将字符串常量分散在控制器和视图两个地方

2.总是使用强类型的视图,并且所有数据都从Model中获取。这么做可能会在一定程度上增加了代码量,因为我们需要为每个视图建立一个Model,不过我认为这是值得的。在强类型的视图中,VS中能够对Model的各种成员做出丰富的代码提示,我们便可以快速地输入代码,并确保不会出现“拼写”之类的低级错误。如果使用了ViewData这个弱类型的字典,那么每次我们获取某个值之后,都必须将其Cast成具体的类型才能使用,这无疑使视图模板变得复杂而难以维护。

3.使用强类型获得的益处

  • 能够享受代码提示功能
  • 能够获得重构工具的支持
  • 能够在编译期发现更多错误

总结+ 

  对于如商品 订单 等较复杂 数据信息 可以采用model 对于一些简单的页面 动态数据的可以脱离model 继续使用弱类型传递

 

 

最近开发的一个商城项目就是使用数据接口形式开发 其中也建立了大量的model 由于项目性能方面要求不高 所有搜索都是使用.net 提供的Excepsion树结合动态构建搜索 实现所有搜索模版的动态搜索以及统一数据请求入口控制

web数据接口服务需要在建立model时需要考虑model承载的数据分类    以期实现多个数据组合 不应使用重量的model 使得重用性较差 

而在mvc开发中则可以使用一个model包含多个子模型 使得模型信息集中 便于管理 也增加了代码的可读性与扩展性

其实通过model还可以大大降低ajax传递数据改造成本 这个时候只需要重写一个view函数 在其中判断是否为xhr请求并序列化model即可

在项目开发中应该清晰知道每个model建立后用于承载什么数据 model中数据之间是否是有关联的 如果滥用模型承载数据 同样将使得项目中的数据结构混乱 难以管理

如 订单商品数据 与地址数据 为一对一 这时应该有一个订单信息模型下包含订单基本数据与订单地址模型 而不要将地址具体信息与订单基本数据直接关联

 

依赖标识可以更好的降低模型数据间的依赖程度 降低模型结构修改的成本

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: