65.9K
CodeProject 正在变化。 阅读更多。
Home

ASP.NET MVC 4 新功能

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.25/5 (21投票s)

2013 年 11 月 17 日

CPOL

5分钟阅读

viewsIcon

94462

ASP.NET MVC 4 的新功能

MVC 4 新功能介绍

MVC 4 可从 这里 安装在 Visual Studio 2010 中,MVC 4 将是 Visual Studio 2012 中的默认项目模板。

MVC 4 在项目模板方面引入了许多新功能,并且框架也添加了许多新功能。

MVC 4 已于 2012 年 8 月 15 日正式发布。

MVC 4 功能

MVC 4 功能分为以下两种方式进行分类:

  1. MVC 框架
  2. MVC 项目模板

I. MVC 4 框架

1. 将控制器添加到其他项目文件夹

直到 MVC 3,控制器类只能添加到项目中的“Controllers”文件夹,不允许将控制器类添加到其他文件夹,但从 MVC 4 开始,我们可以将控制器类添加到任何其他文件夹,这样我们可以更好地组织项目中的控制器类。

示例:假设项目中有酒店模块,想在控制器文件夹内创建一个“hotel”文件夹,并创建所有酒店相关的控制器。请按照以下步骤添加新控制器类:

步骤 1:在“Controllers”文件夹内创建一个“Hotel”文件夹。

步骤 2:按如下方式添加控制器

步骤 3:项目文件夹结构如下

2. 异步控制器的任务支持

MVC 4 控制器类基于 .NET 4.5 构建。这使我们能够编写返回 **Task<actionresult> 类型对象的异步操作方法。.NET 4 引入了一种增强的异步编程编写方式,MVC 4 也支持这种方式。

我不会提供完整的细节,因为这超出了本文的范围。我很快会写另一篇。

异步控制器方法的示例如下:

public async Task<actionresult> HotelAsync()
{
   var objHotelService = new HotelService();

   return View("Hotels", await objHotelService.GetAllHotelsAsync());
}    
3. 捆绑和最小化

捆绑和最小化框架将减少 Web 页面内部进行的 HTTP 请求次数。此外,最小化将减小整体请求的大小。

捆绑:捆绑功能始于 ASP.NET 4.5。捆绑功能将多个文件合并成一个文件。我们可以创建 JavaScript、CSS 和其他捆绑包。捆绑将提高 Web 请求的性能,因为它将包含更少的文件,这意味着更少的 HTTP 请求。

最小化:最小化将通过删除不必要的空格、注释和将变量名缩短为单个字符来优化脚本和 CSS 文件。

控制捆绑和最小化:通过在 Web.config 文件 compilation debug 属性中设置值来启用或禁用捆绑和最小化。

compilation debug="true"  : Disabled 
compilation debug="false"  : Enabled
              
system.web
compilation debug="true" 
system.web     

我们可以使用 BundleTable 类上的 EnableOptimizations 属性覆盖 Web.config 设置。在 Visual Studio 2012 的 MVC 4 中,我们可以在“App_Start”文件夹中找到“BundleConfig.cs”,可以在其中添加 EnableOptimizations 属性并设置值。

BundleTable.EnableOptimizations = true; //Enabled Bundling 
minification BundleTable.EnableOptimizations = false; //disabled Bundling and minification 

示例

public static void RegisterBundles(BundleCollection bundles)
    {
        BundleTable.EnableOptimizations = true;

        bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                    "~/Scripts/jquery-{version}.js"));

        bundles.Add(new StyleBundle
        ("~/Content/css").Include("~/Content/site.css"));

        bundles.Add(new StyleBundle("~/Content/themes/base/css").Include(
                    "~/Content/themes/base/jquery.ui.core.css",
                    "~/Content/themes/base/jquery.ui.theme.css"));            
     }

注意:必须设置 Web.config 的 'compilation debug="false"' 或 'BundleTable.EnableOptimizations=True',否则捆绑和最小化将不起作用。

4. 使用 OAuth 和 OpenID 支持从 Facebook 和其他网站登录

MVC 4 具有默认的“Internet Project”模板,该模板支持使用 DotNetOpenAuth 库进行 OAuth OpenID 登录。

5. App_Start 文件夹和独立类

MVC 4 与 Visual Studio 2012 一起,一旦我们创建新的 MVC 4 应用程序,“App_Start”文件夹就会被创建,其中包含以下类:

  • RouteConfig.cs:此类用于路由表集合数据。我们有一个用于路由集合数据和 URL 模式定义的 static 函数“RegisterRoutes”。对于使用 Visual Studio 2010 的用户,您将在 global.asax 中找到“RegisterRoutes”函数。
  • BundleConfig.cs:这是 MVC 4 中用于捆绑和最小化的新功能,上面我已解释了其工作原理。
  • WebApiConfig.cs:这是 MVC 4 的一项新功能,此类类似于“RouteConfig”类,唯一的区别是此类将为 ASP.NET Web API(一种 REST 服务)进行路由。
  • FilterConfig.cs:这是用于操作筛选器逻辑的。
  • AuthConfig.cs:这是 MVC 4 的一项新功能,将用于 OAuth OpenID 身份验证。
6. 显示模式

通过新的显示模式,视图将根据请求浏览器进行选择。换句话说,我们可以说,如果桌面浏览器发出请求,则会选择桌面版本的视图。如果移动浏览器发出请求,则会选择移动版本的视图,其他设备也是如此。

我可能会在其他博客中写完整的细节。

7. Azure SDK

ASP.NET MVC 4 支持 Windows Azure SDK 的 1.6 及更高版本。

8. 数据库迁移

MVC 4 包含 Entity Framework 5。Entity Framework 5 支持数据迁移,这是可用的重要功能之一。

II. MVC 项目模板

1. ASP.NET Web API

MVC 4 包含新的项目模板“Web API”,用于在 MVC 框架之上构建 HTTP 服务。这是一种轻量级服务,可以返回 JSON 或 XML 数据。该服务具有广泛的客户端覆盖范围,包括浏览器、移动设备、平板电脑甚至电视机顶盒。ASP.NET Web API 也是构建 RESTful 服务的理想平台。

以下是创建 Web API 的几个步骤:

步骤 1:选择 ASP.NET MVC 4 Web Application 项目模板,如下所示:

步骤 2:现在选择 Web API,如下所示:

步骤 3:API 控制器类快照

2. 移动项目模板

MVC 4 包含了一个新的项目模板“Mobile Application”。如果我们必须为移动或平板设备开发特定网站,那么我们可以使用此移动应用程序项目模板。它基于 JQuery Mobile,这是一个用于构建触摸优化 UI 的开源库。

3. 空项目模板

空项目模板现在是完全空的,因此我们可以从头开始。早期版本的空项目被重命名为“basic”。

4. 对默认项目模板的增强

默认项目模板具有符合现代网站外观的新外观和感觉。还对该站点实施了自适应渲染技术,该技术将在桌面和移动浏览器中看起来都不错,无需任何更改。

实用的 ASP.Net MVC 面试题和答案

请访问此链接 ASP.Net 面试题和答案

摘要

我已尽力解释了 ASP.NET MVC 4 中所有可用的新功能。希望您喜欢阅读整个主题。请提供您的投票、建议和反馈……以鼓励我写更多博客。

© . All rights reserved.