初探 Asp.net MVC3

Asp.net MVC 3已经发布有一段时间了,加入了Razor视图引擎,使用起来感觉好了很多。

首先安装 VS2010(各种版本都行)

  • 使用Web Platform Installer安装Asp.net MVC

新建一个Asp.net MVC 3的Web Application

image

image

首先,我们选择一个Internet Application,下面可以选择视图引擎,选择 Razor,来看看Razor引擎吧。

工程建好了,先看下目录结构,还是跟之前的版本一致,Models Views Controllers 标准的MVC

image

变化最大的就是Views,首先在Views根目录下有一个 _ViewStart.cshtml,其内容如下:

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

这个指明View的默认Master Page为_Layout.cshtml。这行命令以后在每一个基于Layout生成的View中都能看到,如果没有这样语句,则会使用默认的Layout,就是上面这样语句指明的_Layout.cshtml。如果这个页面不基于任何Layout,需要设置Layout = null

@{
    Layout=null;
}

@这样的语法是Razor引擎特有的,这里可以看下Scott对Razor引擎的一个介绍 http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx

下面看一下这个默认的_Layout.cshtml文件中的内容变化:

首先是:

是的之前的ViewData没了,变成这个ViewBag,而且类型从Dictionary变成了Dynamic,这是C# 4.0中的新特性。具体Dynamic为何物,可自行搜索并学习下。这个ViewBag对象可以用来传递Title这些属性。

第二:       


          @Html.Partial("_LogOnPartial")
           

输出一个Partial User Control的方法, 也变了,不过还是使用的是Html这个Helper;

第三:      


            @RenderBody() 
       

@RenderBody()这里会输出具体的View中的内容,功能像aspx引擎中的ContentPlaceHolder一样,不过这样的语法更简洁了吧。

不过看起来只能输出一个View,就相当只有一个PlaceHolder了?不,这个是默认的。在Razor中除了这个默认的Body之外,还可以定义其他的Section,例如在Layout中写这么一句:

@RenderSection("leftMenuSection", false)

第一个参数是Section的内容,第二个参数表示是否必须。如果你在实现的View中,定义了leftMenuSection这个Section,那么最终生成的页面将会包含这个Section,如果没有定义,那么就忽略该Section。

在View中可以这么定义一个Section:

这样在你的View中,就可以显示出这个Menu了。这样就可以在Layout中定义多个自定义区域。默认的哪个就是RenderBody中的内容。
-------------------------------------------------------------------------------------------------------

另外在新的工程文件夹中Scripts中,我们发现了jquery-1.4.4.js, jquery.ui.js, jquery.validate.js ,看来asp.net mvc给于JQuery的真是大爱啊,这个我很喜欢。

今天就写到这,明天继续。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值