ASP.NET MVC框架(第三部分): 把ViewData从控制器传到视图

ASP.NET MVC框架是个你可以用来结构化你的ASP.NET web应用,使之拥有清晰的关注分离,方便你单元测试代码和支持TDD流程的可选方法 。

我将讨论控制器是如何与视图做交互的,具体来说,我将讨论你可以把数据从控制器传到视图以显示返回到客户端的回复的各种方式。

第一部分的扼要简述

在这个系列的第一部分,我们创建了一个电子商务网站,实现了基本的产品列表/浏览支持。我们是用ASP.NET MVC框架实现这个网站的,这 个方法会很自然地将代码结构化为独特的控制器,模型和视图组件。

当浏览器向我们的网站发送一个HTTP请求时,ASP.NET MVC框架将使用它的URL路径选择引擎,把进来的请求映射到一个控制器上的action方 法来处理它。在基于MVC的应用中的控制器负责处理进来的请求,处理用户输入和交互,执行基于这些输入和交互的应用逻辑(获取或更新存储 在数据库中的模型数据等等)。

到生成返回到客户端的HTML回复的时候,控制器一般是与“视图”组件合作,这些视图组件 是以独立于控制器的单独的类或模板的形式实现的,其目的是完全注重于封装显示逻辑。

视图不应该含有任何应用逻辑或数据库访问代码,所有的应 用/数据逻辑应该由控制器类来处理。这么划分的动机是帮助强制你的应用/数据逻辑与界面生成代码间的清晰分离。同时这也方便你独立于你 的界面显示逻辑来单元测试你的应用/数据逻辑。

视图应该只使用从控制器传过来的特定于视图的数据来生成输出。在ASP.NET MVC框架 中,我们称这个特定于视图的数据为“ViewData”。这个博客的其他部分将讨论你可以用来将ViewData从控制器传递给视图来生成 显示的一些不同方法。

一个简单的产品列表场景

为帮助说明我们可以用来把ViewData从控制器传递给视图的一些技术,让我们来建 造一个简单的产品列表网页:

时间: 2024-10-18 09:58:59

ASP.NET MVC框架(第三部分): 把ViewData从控制器传到视图的相关文章

[转自Scott]ASP.NET MVC框架(第三部分): 把ViewData从控制器传到视图

英文原文地址:http://weblogs.asp.net/scottgu/archive/2007/12/06/asp-net-mvc-framework-part-3-passing-viewdata-from-controllers-to-views.aspx 翻译原文地址:http://blog.joycode.com/scottgu/archive/2007/12/07/112355.aspx 过去的几个星期内,我一直在写着讨论我们正在开发的新ASP.NET MVC框架的系列贴子.AS

搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 (三)实现数据库接口层和业务逻辑层

    本篇是介绍我们完成数据库接口层和业务逻辑层的接口的设计和实现. 废话不多讲,还是怎么一步一步做. 第一步:设计IDao层.在MyWeb.WebTemp.IDao项目中添加IUserDao接口.代码如下:   代码 using System;using System.Collections.Generic;using System.Linq;using System.Text;using MyWeb.WebTemp.Model; namespace MyWeb.WebTemp.IDao{p

搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 (二)创建你的项目

本篇文章的目的:首先是创建解决方案.并创建相关的项目.先介绍一下项目的各自的作用: 从数据库层到表示层依次为: 数据库层:        1.接口IDao层:IDao        2.Dao层实现:HibernateDao和SqlDao             HibernateDao:由Hibernate实现的IDao部分             SqlDao:是由我们自己写sql实现的部分 业务逻辑层:        1.业务逻辑接口层:IBLL        2.业务逻辑接口的实现:BL

搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 (四)配置全攻略

     本篇目的:配置Spring.Net和Nhibernate.配置Spring.Net来注入Nhibernate需要的SessionFactory,配置业务逻辑层所需要的Dao层属性的支持.配置这套框架与web程序关联.      在上一篇我们已经将三层基本搭建起来了.这篇中我们将要讲述怎样通过配置,将三层通过IOC注入.现在我们开始我们的旅程: 第一步:配置实体类[Model]对应的数据库映射文件.Nhibernate中要求映射文件必须按照约定的文件命名格式进行命名.至于放到什么项目中都

搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 (六)写在后面的话

     如果在你的项目中,配置的没有报错,但是总是注入进来的都是null的话,可查看配置文件所在的项目是否添加了配置文件中所引用或配置了的项目.还有就是mvc中control中注入都失败了.这个最后还是采用了cs的办法来获取的业务逻辑层的实体类,多少有点遗憾.      下面再回顾一下整个项目搭建的流程: 1.准备开发环境:Spring.Net .Nhibernate .Asp.Net Mvc.Vs2008 sp1等 2.创建解决方案,添加Service Dao  Model等各个层的项目,准

搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 (一)搭建你的环境

使用这套框架不是很长时间.但也基本应用了几个项目中了.在此和大家分享一下我是怎样一步一步搭建此框架的.并为初学者提供一个简单的示范.欢迎共同讨论技术问题.[本人纯属菜鸟!不足之处多谅解!] 第一步:       首先要看一下我项目中三层与mvc以及Spring.Net,Nhibernate处在的哪一层.看下面一幅图: 先做为一个大体的思路和了解. 第二步:       了解Spring.Net做什么用?http://www.springframework.cn/        了解Nhibern

搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 (五)测试你的成果

          本篇文章:主要介绍怎么使用这套框架.在做好配置等前期工作后.我们就是要与Mvc进行融合了.由于Mvc本人也是个初级入门者.对于这部分的研究还不是很深入.但是基本应用已经可以了.下面就让我们开始一个简单的应用实例吧: 第一步:添加control 在web项目中的controls文件夹下面添加一个UserController.cs文件.[这里可以把Controls单独放到一个项目中,这里只是搭建框架的演示,就不做那么复杂了] 添加代码如下所示: 代码 using System;u

ASP.NET MVC框架(第四部分) 处理表单编辑和提交场景

这个系列的第一篇建造了一个简单的电子商务产品列表/浏览网站.它讨论了MVC后面的高层次的概念,示范了如何从头创建一个新的 ASP.NET MVC项目,实现和测试这个电子商务产品列表功能.系列的第二篇对ASP.NET MVC框架的URL路径选择(routing)架构做了深入探讨, 讨论了它的工作原理以及你如何使用它来处理更高级的URL路径选择场景. 第三篇讨论了控制器是如何与视图做交互的,特别地讨论了你可以 把视图数据从控制器传给视图以显示返回到客户端的回复的各种方法. 在今天的帖子里,我将讨论你

[转自Scott]ASP.NET MVC框架(第一部分)

英文原文地址:http://weblogs.asp.net/scottgu/archive/2007/11/13/asp-net-mvc-framework-part-1.aspx 翻译原文地址:http://blog.joycode.com/scottgu/archive/2007/11/14/111385.aspx 两个星期前, 我在博客里讨论了ASP.NET的一个新MVC(模型.视图,控制器)框架,我们将在不久的将来作为一个可选功能来支持.该框架提供了一个结构化的模型,来加强应用中的清晰关