非常抱歉,在我的认知范围内,Microsoft的Visual studio中尚未加入类似于web窗体的实时预览功能,如果想要查看视图结果,只能通过在浏览器中运行查看。
Part 1 回顾
该系列的第一篇文章我们采用ASP.NET MVC框架创建了一个电子商务站点,实现了基本的产品列表/浏览功能,并把代码自然的划分到不同的Controller,模型(英文名称:Model,以下统一称Model)和View部分。
当浏览器向服务器发送一个HTTP请求时,ASP.NET MVC框架将使用URL映射引擎将该请求映射到controller的操作方法来处理。MVC应用程序中的Controller处理客户端请求,捕获用户输入和进行交互,并执行相应的应用逻辑(获取或更新数据库中的模型数据等)。
当需要向客户端返回HTML回应时,controller针对views进行操作,Views是独立于controller的类或模板,并主要完成显示逻辑的封装。
Views不应该包含任何应用逻辑或数据访问代码,所有的应用/数据逻辑都应该有controller来完成。这样做的好处是让应用/数据逻辑与UI呈现代码有更加清晰的分离,并使得针对应用/数据逻辑的单元测试与UI呈现逻辑相分离。
View应当只根据由Controller针对该View传来的数据生成输出。在ASP.NET MVC框架中,我们把该数据成为视图数据(ViewData)。下面将要介绍将视图数据转换为输出的不同方式。
简单的产品列表场景
让我们常见一个产品列表页来说明我们从Controller向View传递视图数据的技术:
我们将要使用CategoryID整数来过滤出我们希望产生在页面上的产品。注意上面我们是如何把CategoryID作为URL的一部分的(例如: /Products/Category/2或/Products/Category/4)
我们的产品列表页要产生两个独立的动态内容元素,第一部分是我们要显示的目录名称(例如:Condiments),另一部分是一组HTMl
F5运行看看