作者: Rick Anderson
ASP.NET MVC 5 入门
ASP.NET MVC 5 简介
此教程的更新版本可在此处使用最新版本的Visual Studio。 新教程使用ASP.NET CORE MVC,这在本教程中提供了许多改进。
本教程介绍具有控制器和视图的 ASP.NET Core MVC。 Razor 页面是 ASP.NET Core 2.0 中的一个新选择,它是基于页面的编程模型,可以实现更简单、更高效地生成 Web UI。 建议先尝试 Razor 页面教程,再使用 MVC 版本。 Razor 页面教程:
- 易于关注。
- 涵盖更多功能。
- 是开发新应用程序的首选方法。
以下教程系列介绍了GitHub上的 ASP.NET MVC: Source
- 入门
- 添加控制器
- 添加视图
- 添加模型
- 创建连接字符串并使用 SQL Server LocalDB
- 从控制器访问模型的数据
- 检查 Edit 方法和编辑视图
- 添加搜索
- 添加新字段
- 添加验证
- 检查 Details 和 Delete 方法
一、创建连接字符串并使用 SQL Server LocalDB
你创建的 MovieDBContext
类将处理连接到数据库的任务,并将 Movie
对象映射到数据库记录。 但您可能会问的一个问题是如何指定它将连接到的数据库。 实际上不必指定要使用的数据库,实体框架将默认为使用LocalDB。 在本部分中,我们将在应用程序的 web.config文件中显式添加一个连接字符串。
二、SQL Server Express LocalDB
LocalDB是按需启动并在用户模式下运行的 SQL Server Express 数据库引擎的轻型版本。 LocalDB 在 SQL Server Express 的特殊执行模式下运行,该模式使您能够将数据库用作 .mdf文件。 通常,LocalDB 数据库文件保存在 web 项目的应用_Data文件夹中。
不建议在生产 web 应用程序中使用 SQL Server Express。 LocalDB 不应与 web 应用程序一起用于生产,因为它不能与 IIS 一起使用。 但是,可以轻松地将 LocalDB 数据库迁移到 SQL Server 或 SQL Azure。
在 Visual Studio 2017 中,默认情况下使用 Visual Studio 安装 LocalDB。
默认情况下,实体框架将查找与对象上下文类(此项目MovieDBContext
)相同的连接字符串。 有关详细信息,请参阅SQL Server ASP.NET Web 应用程序的连接字符串。
打开如下所示的应用程序根web.config文件。 (而不是Views文件夹中的web.config 文件。 )
查找 <connectionStrings>
元素:
将以下连接字符串添加到web.config 文件中的 <connectionStrings>
元素。
<add name="MovieDBContext"
connectionString="Data Source=(LocalDb)MSSQLLocalDB;Initial Catalog=aspnet-MvcMovie;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|Movies.mdf"
providerName="System.Data.SqlClient"
/>
下面的示例演示了web.config 文件的一部分,并添加了新的连接字符串:
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)MSSQLLocalDB;Initial Catalog=aspnet-MvcMovie-fefdc1f0-bd81-4ce9-b712-93a062e01031;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnet-MvcMovie-fefdc1f0-bd81-4ce9-b712-93a062e01031.mdf" providerName="System.Data.SqlClient" />
<add name="MovieDBContext" connectionString="Data Source=(LocalDb)MSSQLLocalDB;Initial Catalog=aspnet-MvcMovie;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|Movies.mdf" providerName="System.Data.SqlClient" />
</connectionStrings>
这两个连接字符串非常类似。 第一个连接字符串命名为 DefaultConnection
,并用于成员资格数据库以控制谁可以访问应用程序。 已添加的连接字符串指定应用_Data文件夹中名为Movie .mdf的 LocalDB 数据库。 在本教程中,我们不会使用成员资格数据库,有关成员身份、身份验证和安全性的详细信息,请参阅我的教程使用身份验证和 SQL 数据库创建 ASP.NET MVC 应用并将其部署到 Azure App Service。
连接字符串的名称必须与DbContext类的名称匹配。
using System;
using System.Data.Entity;
namespace MvcMovie.Models
{
public class Movie
{
public int ID { get; set; }
public string Title { get; set; }
public DateTime ReleaseDate { get; set; }
public string Genre { get; set; }
public decimal Price { get; set; }
}
public class MovieDBContext : DbContext
{
public DbSet<Movie> Movies { get; set; }
}
}
实际上,不需要添加 MovieDBContext
连接字符串。 如果未指定连接字符串,实体框架将使用DbContext类的完全限定名称(在此情况下 MvcMovie.Models.MovieDBContext
)在用户目录中创建一个 LocalDB 数据库。 只要数据库具有,就可以将其命名为任意名称 .MDF后缀。 例如,我们可以将数据库命名为MyFilms。
接下来,您将生成一个新的 MoviesController
类,该类可用于显示电影数据并允许用户创建新的电影节目表。