MVC框架中,生成的视图文件如何预览,类似ASPX页面查看。

2024-11-23 11:06:19
推荐回答(3个)
回答1:

非常抱歉,在我的认知范围内,Microsoft的Visual studio中尚未加入类似于web窗体的实时预览功能,如果想要查看视图结果,只能通过在浏览器中运行查看。

回答2:

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

标记显示产品名称列表。这两部分我都已经在上面的截图中作出红色标记。

下面我们将要分别介绍两种方式,来实现ProductsController类处理请求,获取数据并显示数据的过程。第一种方式我们要使用迟绑定(late-bound)对象,另一种方式我们要使用强类型类(strong-typed)。

方式1:使用Controller.ViewData传递视图数据

Controller基类包含一个名为”ViewData”的属性可以用来存放传递给视图的数据,你可以使用name/value的形式向ViewData中添加对象。

下面的ProductsController类中包含一个Category方法可以实现上面所说的产品列表功能。注意该类是如何使用目录的ID参数来寻找该目录的名称的,以及如何获取该目录中的所有产品。这两部分内容都被存放在Controller.ViewData集合中,并分别使用”CategoryName”和“Products”名称作为主键:

上面的Category方法调用RenderView(“List”)并指明了将要使用哪个视图模板来产生输出,当调用RenderView方法时,Controller将把ViewData传递到View中以便进行显示。

实现View

我们将使用/Views/Products目录下的List.aspx页面文件来实现List视图,该文件将继承/Views/Shared目录下Site.Master母版页的布局(在VS2008中创建新的视图时右单击项目选择”添加新项目”->”MVC视图内容页”选择母版页):

回答3:

F5运行看看