ASP.NET MVC3 (第一部分) 基础






4.46/5 (9投票s)
介绍创建 MVC3 应用程序的基本信息和步骤。
关于本文
本文介绍了 MVC 3 的基础知识、Razor 视图引擎的功能以及自定义辅助类的创建。
引言
我假设读者对 MVC 模式有基本了解(如果不是,请查找 MVC 详细信息的参考链接)。因此,我将不解释 MVC 的基础知识以及 MVC 1、2 的功能。MVC 3 具有许多新功能和改进的功能。本文将通过一个简单的 MVC3 应用程序来解释 Razor 视图引擎的基本概念。
必备组件
- VS 2010
- MVC 3 框架
MVC3 演示应用程序概述
本文介绍了一个使用 Razor 视图引擎的简单 MVC3 应用程序。该应用程序在网页上显示所有可用产品和选定产品详细信息的列表。该应用程序名为 MVC3Demo。
创建 MVC 3 应用程序
步骤 1
语言 | Visual C# 或 Visual Basic |
目标框架 | .NET Framework 4 |
已安装模板 | Web |
模板 | ASP.NET MVC 3 Web 应用程序 |
名称 | MVC3Demo |
第二步
在“新建项目”窗口中单击“确定”按钮后,将打开 MVC 3 项目模板窗口。
选择包含三个应用程序模板的“模板”部分
- Empty
- Internet Application (互联网应用程序)
- Intranet Application (内联网应用程序)
它会创建一个不带 Controller 和 View 页面的空 MVC 3 项目。但它会创建 CSS、JavaScript (jQuery) 文件和具有空模板的主布局页面。
它会创建 AccountController、HomeController 和相关的视图,以及用于 Forms 身份验证的代码。
与 Internet Application 类似,它会创建基本的 Controller 和相关的代码,并支持 Windows 身份验证。
请选择“Empty Template”(空模板)和“Razor”作为视图引擎;还有一个视图引擎 ASPX(类似于之前的 MVC 版本)。
步骤 3
空模板包含一些基本的文件结构和默认文件。请参见屏幕截图,了解选择空模板时的默认文件。
注意:Razor 视图引擎会为 C# 创建 CSHTML 视图文件扩展名,为 VB 创建 VBHTML 视图文件扩展名。
创建模型
右键单击“Models”文件夹,创建一个类文件ProductModel.cs,并添加一些属性。在此示例中,我创建了 `PrdCode`、`Name` 和 `Price` 作为属性,以及 `GetAProduct` 和 `GetAllProduct` 作为方法。
public class ProductModel
{
[DisplayName("Product Code")]
public int PrdCode { get; set; }
[DisplayName("Title")]
public String Name { get; set; }
[DisplayName("Price in $")]
public double Price { get; set; }
private IList<productmodel> PRODUCTS
{
get
{
IList<ProductModel> prs = new List<ProductModel>()
{
new ProductModel() { PrdCode =100001, Name ="Baby Product 1", Price =10},
...
...
...
new ProductModel() { PrdCode =100020, Name ="Baby Product 20", Price =30}
};
return prs;
}
}
public ProductModel GetAProduct(int prdCode)
{
ProductModel prd = PRODUCTS.Where(x => x.PrdCode == prdCode).Single<ProductModel>();
return prd;
}
public IList<ProductModel> GetAllProducts()
{
return PRODUCTS;
}
}
有关详细代码,请参阅附加的项目。
步骤 4
创建控制器
右键单击“controller”文件夹,然后选择“Add->Controller”菜单。
这将带您进入“添加 Controller”窗口,将 Controller 名称重命名为 `ProductController`,然后单击“添加”按钮。
Controller 有三种类型的模板。在此应用程序中,请选择“Empty controller”(空 Controller)。
选择其他模板时,Controller 类将包含一些默认的读/写操作代码。
步骤 5
生成应用程序,并确保没有生成错误。
创建视图 (View)
打开 `ProductController` 类,右键单击 `Index` 方法,然后选择“Add View”菜单。
这将带您进入“添加视图”窗口。
视图名称:保留默认值(Index)
视图引擎:保留默认值(Razor 视图引擎)。它将创建一个名为 Index、扩展名为 .cshtml 的文件。
选择“创建强类型视图”复选框,然后选择“模型类”:ProductModel(在此步骤之前应生成应用程序)。
脚手架模板:Empty,并保留此窗口中所有其他字段的默认值,然后单击“添加”按钮。
这会在“Views”文件夹下创建默认的 Product/Index.cshtml 页面。
Razor 视图引擎语法 – 基础知识
字符“@”
在 HTML 标记中,我们可以使用“@”代替“<% %>”来编写 C# 或 VB 代码。例如:
对于单行 C# 代码 `DateTime.Now`,只需在 HTML 标记中 `DataTime.Now` 前面加上“@”即可。
<p>
Today: @DateTime.Now
</p>
对于多行代码,`@{……}` 足以指定 C# 代码。
@{
int i = 0;
i += 10;
}
Layout.cshtml
@RenderBody()
@RenderSection("mySectionName")
@RenderSection("mySectionName", optional:true)
呈现不在任何命名区域内的页面的内容。
呈现给定名称的区域内容。区域默认是必需的,因此链接到模板的每个页面都必须声明它们。
呈现可选区域的内容。链接到模板的页面可以省略可选区域的定义。
_Layout.cshtml 是此应用程序的主页面,`@RenderBody()` 部分会呈现 index.cshtml 页面的内容。
Index.cshtml
默认情况下,index.cshtml 页面包含以下代码。
@model MVC3Demo.Models.ProductModel
@{
ViewBag.Title = "Index";
}
页面指令和 `Inherits` 属性等已在此 MVC3 版本中移除。
自定义辅助器
在 Razor 中也可以创建自定义辅助器,要创建自定义辅助器,我们必须遵循以下步骤。
步骤 8
添加新的 App_Code 文件夹,然后右键单击该文件夹。
将打开“添加新项”窗口,选择 MVC3 Partial Page (Razor),并将其命名为 CustomerHelpers.cshtml。
在 CustomerHelper.cshtml 页面中,使用 `@helper methodname() {…..}` 创建自定义辅助器。
@helper ShowTime()
{
<div>
Current Time: <strong>@DateTime.Now.ToShortTimeString()</strong>
</div>
}
然后生成项目,之后可以在视图和布局页面中使用 `@CustomerHelpers.ShowTime()` 方法。
有关 ProductController 和 Index.cshtml 的详细代码,请参阅附件中的应用程序,然后运行该应用程序。
结论
我希望这篇博文能帮助您使用 MVC3 模式创建基本应用程序。
我将在下一篇文章中介绍 MVC3 的其他一些功能。