【分享】MVC2.0升级到MVC3.0后的4个区别

摘要:为了赶上技术潮流,项目组计划把MVC版本从2.0升到3.0,通过研究MVC3.0英文教材,总结出如下4个MVC3.0和2.0的重要区别。(女孩礼物网

 

1. @ 符号在 View 页面中的用法:

C#代码以 @符号开头,例如

1 <h2>Name: @Model.Name</h2>
2 
3 以及
4  
5 @if (Model.Category == "Watersports") { 
6     <p>@Model.Category <b>Splash!</b> </p> 
7 }

如果你的代码中不是以 html 标记开头,也就是说你想在一段文本内部使用 C#代码的话,使用 @: 标记,例如

@:Category: @Model.Category <b>Splash!</b>

你可以通过 @{ } 把一大块代码组织起来,例如

@{
    if (Model.Category == "Watersports") {
        @:Category: @Model.Category <b>Splash!</b> 
    }
    if (Model.Price > 10) {
        <h5>Pricey!</h5>
    }
}

假如你使用的是 html 标记开头的话,可以写成这样

<span>Category: @Model.Category <b>Splash!</b></span>

 建立强类型的 view 页面之后,页头中使用 @model (必须为小写字母)指明对象的类型,例如 @model Razor.Models.Product

引用命名空间在页头中使用 @using 例如 @using System.Data;

 

2. Controler 向 View 传值

以前的方法仍然可用,比如 return view(model) ,用于向强类型的页面传入对象,或者使用 ViewData

MVC3 又增加了 ViewBag ,这是一个动态类型,意思是说你可以不需要定义它的属性和数据类型,在使用的时候直接使用。

例如 ViewBag 根本没有 aaa 这个属性,也不知道 aaa 到底是什么类型,你可以直接 ViewBag.aaa=123 这样用,

系统自动给 ViewBag 增加一个 int 型的属性 aaa 并赋值 123 ,在 View 页面中可以直接调用 ViewBag.aaa 获取到 123

 

3.母板页的使用

在创建 view 的时候,如果勾选了“使用母板页”的复选框,但并没有指定母板页的名字,

系统默认使用的是 _ViewStart.cshtml 页面中通过 Layout 指定的母板页。

如果新创建的 View 中不需要母板页,则必须有以下代码:

@{
    Layout = null;
}

 

 
4. 呈现部分视图时使用 @Html.Action、@Html.Partial和@Html.RenderPartial 方法

   语法如下:

 

@Html.Action("PartialViewName")
@Html.Partial("PartialViewName")
@{ Html.RenderPartial("PartialViewName"); }

 

 

 

posted @ 2012-11-16 14:43  施瓦小辛格  阅读(4730)  评论(21编辑  收藏  举报