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中数据之间是否是有关联的 如果滥用模型承载数据 同样将使得项目中的数据结构混乱 难以管理

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

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

.net使用mvc模式开发web应用 模型与视图间的数据处理的更多相关文章

  1. 【Web开发】Mean web开发 01-Express实现MVC模式开发

    简介 Mean是JavaScript的全栈开发框架.更多介绍 用Express实现MVC模式开发是Mean Web全栈开发中的一部分. Express 是一个基于 Node.js 平台的极简.灵活的 ...

  2. JavaFX桌面应用-MVC模式开发,“真香”

    使用mvc模块开发JavaFX桌面应用在JavaFX系列文章第一篇 JavaFX桌面应用开发-HelloWorld 已经提到过,这里单独整理使用mvc模式开发开发的流程. ~ JavaFX桌面应用开发 ...

  3. 【转】利用MVC模式开发Java应用程序[组图]

    Java是一种面向对象的语言,是实现面向对象编程的强大工具.我们在实际编程中,应该运用并发挥其最大效能.但是,要利用面向对象编程思想,自己独立开 发出好的Java应用程序,非凡是大.中型程序,并不是一 ...

  4. Extjs MVC模式开发,循序渐进(一)

    本文讲述extjs mvc的Helloworld,tabPanel,event,页面布局layout等内容. 本页包含:MVC模式案例(一)~MVC模式案例(六),从搭建extjs mvc到点击按钮生 ...

  5. 使用MVC模式开发一简单的销售额查询系统

    与上一篇比较,只改变了index.jsp文件中form的提交路径 <form action="ShowServlet" method="post"> ...

  6. Angular——MVC模式开发实战

    创建项目 创建工作目录 使用bower下载需要插件 git init.add.commit之后得到分支master,再创建developer分支,然后再此分支上进行具体功能开发 MVC架构 之前小项目 ...

  7. 基于MVC模式开发的后台框架

    1.ThinkCMF 2.NFine快速开发平台 3.力软快速开发框架 如有好的开发框架希望可以一起交流

  8. mvc模式开发

  9. MVC 模式和模型 2

    MVC框架 一个实现 MVC 模式的应用包含模型.视图.控制器 3 个模块: 模型:封装了应用的数据和业务逻辑,负责管理系统业务数据 视图:负责应用的展示 控制器:负责与用户进行交互,接收用户输入.改 ...

随机推荐

  1. winFrom 常用控件属性及方法介绍

    目录 1.窗体(Form) 2.Label (标签)控件 3.TextBox(文本框)控件 4.RichTextBox控件 5.NumericUpDown控件 6.Button(按钮)控件 7.Gro ...

  2. JS数组键值,数组合并,

    eg: var arr = [] arr.test = '测试'; arr.push(1); arr.push(2); arr.obj = '对象'; console.log(arr);// [ 1, ...

  3. 软件调试——IA-32 保护模式下寄存器一览

    最近在看张银奎先生的<调试软件>一书,想将关键的技术记录下来,以便日后查阅,也分享给想看之人吧. 1 通用寄存器 EAX,EBX,ECX,EDX:用于运算的通用寄存器,可以使用AX,BX等 ...

  4. HTML特殊字符编码对照表

    HTML特殊字符编码对照表 特殊符号 命名实体 十进制编码 特殊符号 命名实体 十进制编码 特殊符号 命名实体 十进制编码 Α Α Α Β Β Β Γ Γ Γ Δ Δ Δ Ε Ε Ε Ζ Ζ Ζ Η ...

  5. 前端菜鸟的编程之路之css的用法

    /* * * 固定特殊类 * */ /* ===========固定宽度*============= */ .ld-with80{width: 80px} .ld-with50{width: 50px ...

  6. java使用jsch连接linux

    由于项目需要使用java来linux进行管理,近一番查找,发现第三方jar包 jsch 可以轻松实现对linux的管理,(相关文档及例子请访问官网www.jcraft.com),故引进. 在网上搜索了 ...

  7. Access、Hybrid和Trunk

    以太网端口有三种链路类型:Access.Hybrid和Trunk.Access类型的端口只能属于1个VLAN,一般用于连接计算机的端口:Trunk类型的端口可以属于多个VLAN,可以接收和发送多个VL ...

  8. JDK&JRE&JVM

    JDK:—Java Development kit  (Java开发工具包) JRE:—Java Runtime Environment (Java运行时环境) JVM:Java Virtual Ma ...

  9. mysql数据引擎的概念介绍

    什么是数据库引擎?每种数据库的数据格式,内部实现机制都是不同的,要利用一种开发工具访问一种数据库,就必须通过一种中介程序,这种开发工具与数据库之间的中介程序就叫数据库引擎. 如果你是个赛车手并且按一下 ...

  10. Runtime Reconfiguration

    https://coreos.com/etcd/docs/latest/runtime-configuration.html Runtime Reconfiguration  运行时重新配置 etcd ...