ASP.NET MVC 4 新功能






4.25/5 (21投票s)
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 功能分为以下两种方式进行分类:
- MVC 框架
- 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 中所有可用的新功能。希望您喜欢阅读整个主题。请提供您的投票、建议和反馈……以鼓励我写更多博客。