ASP.NET MVC 3.0(六): MVC 3.0创建你的View视图

ASP.NET MVC 3.0(一): MVC 3.0 的新特性 摘要 

ASP.NET MVC 3.0(二): MVC的概念及MVC 3.0开发环境

ASP.NET MVC 3.0(三): 初识MVC的Url映射潜规则Routing

ASP.NET MVC 3.0(四): 我要MVC潜规则之配置Routing

ASP.NET MVC 3.0(五): 入手Controller/Action

ASP.NET MVC 3.0(六): MVC 3.0创建你的View视图

ASP.NET MVC 3.0(七): MVC 3.0 新的Razor引擎

ASP.NET MVC 3.0(八): MVC 3.0 传递和保存你的Model

ASP.NET MVC 3.0(九): MVC 3.0 验证你的Model

ASP.NET MVC 3.0(十): MVC 3.0 使用 Forms身份验证

ASP.NET MVC 3.0(十一): MVC 3.0 使用筛选器

ASP.NET MVC 3.0(十二): MVC 3.0 使用自定义的Html控件

ASP.NET MVC 3.0(十三): MVC 3.0 防止跨站点请求伪造 (CSRF) 攻击

ASP.NET MVC 3.0(十四): MVC 3.0 实例系列之创建数据表格

ASP.NET MVC 3.0(十五): MVC 3.0 实例系列之表格的排序

ASP.NET MVC 3.0(十六): MVC 3.0 实例系列之表格数据的分页

ASP.NET MVC 3.0(十七): MVC 3.0 实例之表格中数据的筛选

ASP.NET MVC 3.0(十八): MVC 3.0 实例系列之表格中合并排序、分页和筛选

ASP.NET MVC 3.0(十九): MVC 3.0 实例之使用开源控件实现表格排序和分页

 

概述

 

在模型-视图-控制器 (MVC) 模式中,视图专门用于封装呈现逻辑。 这些视图不应包含任何应用程序逻辑或数据库检索代码。 所有应用程序逻辑都应该由控制器进行处理。 视图使用从控制器传递给它的数据来呈现相应的 UI。 此数据是使用 View 方法从控制器操作方法中传递给视图的。

在 MVC Web 应用程序的普通工作流中,控制器操作方法将处理传入的 Web 请求。

这些操作方法使用传入的参数值执行应用程序代码以及检索或更新数据库中的数据模型对象。 然后,这些方法会选择一个将响应呈现到浏览器的视图。

 

MVC 3.0视图引擎

 

MVC 3.0为我们提供了两种视图引擎ASPX(C#)和Razor(CSHTML)

ASP.NET MVC 3.0(六): MVC 3.0创建你的View视图_第1张图片

ASPX(C#)引擎

ASP.NET MVC 框架支持使用视图引擎生成视图 (UI)。 默认情况下,MVC 框架使用从现有 ASP.NET 页面 (.aspx)、母版页 (.master) 和用户控件 (.ascx) 类型中继承的自定义类型(ViewPageViewMasterPage 和 ViewUserControl)作为视图。

Razor(CSHTML)引擎

 

_appstart.cshtml : 

应用程序启动时在Global. Application_Start方法后执行。

用于进行App的初始化时,需要进行处理的内容.例:向数据库记录系统初始化的一些信息。
功能与Global.Application_Start类似,差别在于:Global的Start先执行,然后在到该_appStart,值得注意的是在_appStart上下文中可以使用.NET4的dynamic新特性~~在声明中,作为属性、字段、索引器、参数、返回值或类型约束的类型。

_Layout.cshtml:

布局页面即和aspx的母版页相似。

ASP.NET MVC 3.0(六): MVC 3.0创建你的View视图_第2张图片

创建MVC视图(Razor引擎)

 

建立一个基于Razor引擎空的MVC 3.0空应用程序

ASP.NET MVC 3.0(六): MVC 3.0创建你的View视图_第3张图片

选择空项目模板和Razor视图引擎

ASP.NET MVC 3.0(六): MVC 3.0创建你的View视图_第4张图片

 

新建一个Controller命名为HomeController

鼠标右击 Controller文件夹

ASP.NET MVC 3.0(六): MVC 3.0创建你的View视图_第5张图片

 输入Controller名称。注意必须以Controller结尾。

ASP.NET MVC 3.0(六): MVC 3.0创建你的View视图_第6张图片

添加完控制器后默认给出了起Index的方法。。。

此时我们没有创建对该Action对应的View,所以View是红色的。。。运行时界面会报错。。

 

public ActionResult Index()
{
return View();
}

 

我们先让他输出一个字符串到页面。。。

将代码

 

public ActionResult Index()
{
return View();
}

 

修改为

 

publicstring Index()
{
return"Hello World";
}

 

运行之后 一个简单的界面就出现了 。。。

 

 

ASP.NET MVC 3.0(六): MVC 3.0创建你的View视图_第7张图片

添加View

 

此时我们只是单纯的显示了一些字符串而已。但是我们的界面还需要很多元素不仅仅是文字。。

所以我们还是得从View视图下手。。

返回到前面的

public ActionResult Index()
{
return View();
}

修改前面的代码让Controller的Index返回一个ActionResult

对于ActionResult请参见:我要学ASP.NET MVC 3.0(五): 入手Controller/Action

右击该Action弹出窗体 ---选择添加视图

ASP.NET MVC 3.0(六): MVC 3.0创建你的View视图_第8张图片

 建议不要修改视图名称,后续会慢慢解释

ASP.NET MVC 3.0(六): MVC 3.0创建你的View视图_第9张图片

此时在View文件夹中会对应Controller生成一个Action对应的View视图

在视图里面编写html代码

 

@{
ViewBag.Title = "主页";
}

<h2><a href="Index">Hello World</a></h2>
 
运行效果

ASP.NET MVC 3.0(六): MVC 3.0创建你的View视图_第10张图片

 
控制器和视图之间传递的数据
 
很多时候我们要把一些数据传递到界面上来。就像Web的Session
代码如下
public ActionResult Index()
{
ViewData[
"Message"] ="Hello World";
return View();
}

View修改为

@{
ViewBag.Title = "主页";
}

<h2><a href="Index">@ViewData["Message"]</a></h2>

运行效果还是一样的。。。

ASP.NET MVC 3.0(六): MVC 3.0创建你的View视图_第11张图片

关于TempData 、ViewBag和ViewData

 

其实我个人觉得他们都是一样的。

如果你使用的TempData 、ViewData用ViewBag的方式调用也是一样的效果

反之亦然。。。

例如:ViewBag.Message和ViewData["Message"]

public ActionResult Index()
{
ViewBag.Message
="Hello World";
// ViewData["Message"] = "Hello World";
return View();
}

View代码不变运行效果一样。。。反复调试效果都是一样的。。

TempData、ViewData和ViewBag异同:

 

TempData ViewData ViewBag都可以用来保存数据。
 
它们之间的区别如下:
 
TempData:保存在Session中,Controller每次执行请求的时候,会从Session中先获取TempData,而后清除Session,获取完TempData数据,虽然保存在内部字典对象中,但是其集合中的每个条目访问一次后就从字典表中删除。具体代码层面,TempData获取过程是通过SessionStateTempDataProvider.LoadTempData方法从ControllerContext的Session中读取数据,而后清除Session,故TempData只能跨Controller传递一次。
ViewData:生命周期和View相同,仅对当前View有效。
ViewBag:和ViewData生命周期相同,也是对但前View有效,不同的是ViewBag的类型不再是字典的键值对结构,而是dynamic动态类型,属于MVC3里面新增的部分。
 
总结
 
刚开始接触也谈不上总结。以后学的差不多了再补回来。。(*^__^*) 嘻嘻
 
下节预告
 
新来的Razor
 
 
 
转:记忆逝去的青春 http://www.cnblogs.com/lukun/ 

 

你可能感兴趣的:(ASP.NET MVC 3.0(六): MVC 3.0创建你的View视图)