当前位置 > 首页 > Asp.net

跟我一起学习ASP.NET 4.5 MVC4.0(六)

2012-7-21 11:47:00来源:Asp.net

这一系列文章跨度有点大,由于最近忙于其他事情,没有更新,今天重新安装了下Win8系统,VS2012和SQLServer 2012,顺便抽空继续一篇。随着VS2012 RC版本的放出,ASP.NET MVC4.0也随之有所改变,主要相对于BETA版本。前面几章节都是介绍MVC4.0或者是3.0中内容,今天我们来了解一下WebPage 2.0下面的一些变化。在MVC3.0中使用的是WebPage 1.0版本,这里主要是介绍一下在MVC4.0中对脚本以及样式表的引用变化等等。

 

一、可以直接使用“~”,而无需使用Href对象实例

这个是一大变化,给我们ASP.NET MVC开发人员带来了很便捷的代码书写方式,提高不少效率。在MVC3.0中加入我们需要加入一张图片时,需要在IMG标签的SRC属性加上Url.Content或Href对象方法等来对路径进行解析。在WebPage 2.0中Razor模板引擎能够自动解析基于根目录的路径,即可以直接使用“~”来表示根目录。

 MVC3:

<href="@Href("~/Default.cshtml")">Home</a> 

MVC4:

<href="~/Default.cshtml">Home</a>

 

 

二、CheckBox等可以根据Value自动隐藏checked属性

 在以前初始化一个CheckBox是否被选中,都需要额外写一个方法来判断是否在INPUT的CheckBox中加入checked属性。在MVC4.0中这个将被改变,这也是一个很赞的改进,具体可以看如下代码。

MVC3:

 1 <input type="checkbox"

2 name="check1"
3 value="check1"
4 @if(checked1){<text>checked="@checked1"</text>} />

MVC4:

 1 <input type="checkbox"

2 name="check1"
3 value="check1"
4 checked="@checked1" />

 只要checked1变量为false或null,将会隐藏checked属性,是不是一个很好的改进!!

 

三、使用System.Web.Optimization对脚本和样式表的操作

这个也是本章重点向描述的部分,首先我们可以使用VS2012RC来新建一个MVC4.0项目,版本可以为4.0或4.5。在Global.asax文件代码中,我们发现已经把过滤器,路由器,以及对样式表和脚本捆绑(Bundles)移到了其他页面,就是在根目录下的App_Start文件夹内。代码只是简简单单的几行,代码如下:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Configuration;
 4 using System.Data.Entity;
 5 using System.Data.Entity.Infrastructure;
 6 using System.Linq;
 7 using System.Web;
 8 using System.Web.Http;
 9 using System.Web.Mvc;
10 using System.Web.Optimization;
11 using System.Web.Routing;
12 
13 namespace MVC4
14 {
15     // Note: For instructions on enabling IIS6 or IIS7 classic mode, 
16     // visit http://go.microsoft.com/?LinkId=9394801
17 
18     public class MvcApplication : System.Web.HttpApplication
19     {
20         

  • Objective-C 2.0 with Cocoa Foundation--- 6,NSObject的奥秘

    2009-4-13 12:59:00

    摘要: 6,NSObject的奥秘本系列讲座有着很强的前后相关性,如果你是第一次阅读本篇文章,为了更好的理解本章内容,笔者建议你最好从本系列讲座的第1章开始阅读,请点击这里。在上一章里面,笔者向大家

  • 向Asp.net Ajax 传入DateTime类型后时间变化的问题

    2007-8-20 18:04:00

    摘要: 向Asp.net Ajax 传入DateTime类型后时间会变为零时区的时间,换句话说也就是比中国的时间少了8个小时。 阅读全文 提示符 2007-08-20 17:23

  • 推荐大家一个保护视力的Visual Studio皮肤

    2010-7-5 2:37:00

    作者: Nic Pei 发表于 2010-07-04 22:56 原文链接 阅读: 588 评论: 16 唉,天天在电脑边敲键盘,而且面对着VS里里的小字,我眼睛疼。。。。。不知道你是否有

  • asp.net ajax的事件机制小议

    2007-4-27 17:34:00

    Asp.net Ajax提供的Sys.UI.DomEvent类,实现了跨浏览器的Dom事件操作,诸如以下几个常用的事件操作:$addHandler,$removeHandler,$addHandle

  • 致歉

    2007-2-2 12:07:00

    今天上午10:00~11:00左右由于机房电源问题造成网站不能正常访问,给大家带来了很大的麻烦,请大家谅解! 想到成千上万的朋友为此而着急,心里很难受,希望大家宽容的心能够谅解因此给您带来的麻烦!

  • 两道数学/概率/智力题

    2010-8-12 12:54:00

    题一:在所有有2个孩子的家庭中,如果一个孩子是个女孩,请问另外一个孩子是男孩的概率有多大? 题二:一个岔路口分别通向诚实国和说谎国。来了两个人,已知一个是诚实国的,另一个是说谎国的。诚实国永远

  • Windows会不会基于.net

    2011-4-24 19:16:00

    听说MeeGo是基于Qt的,那么Windows有没有可能基于.net?

  • 一个简单的.net写日志方法 - 可能的改进点

    2012-5-21 12:39:00

    昨天有个朋友在评论的时候问我如下代码在web开发中有什么问题 public void Log( string msg){System.IO.File.AppendAllText(Se

  • .NET基础学习(LINQ)

    2012-4-12 12:20:00

    什么是LINQ LINQ(发音为link)代表语言集成查询(Language Integrated Query) 详细见 LINQ 匿名类型

  • Writing ASP.NET MVC bootstrapper with Autobox

    2012-1-30 23:53:00

    This will post will show how you can use AutoBox to easily write a bootstrapper for ASP.NET MVC. I