ASP.NET MVC 简介
ASP.NET MVC 教程
MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式;它是三种 ASP.NET 编程模式其中之一。
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
ASP.NET 支持三种不同的开发模式:
Web Pages(Web 页面)、MVC(Model View Controller 模型-视图-控制器)、Web Forms(Web 窗体)。
本教程介绍 MVC。
Web Pages | | MVC | | Web Forms |
MVC 编程模式
MVC 是三种 ASP.NET 编程模式中的一种。
MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:
- Model(模型)表示应用程序核心(比如数据库记录列表)。
- View(视图)显示数据(数据库记录)。
- Controller(控制器)处理输入(写入数据库记录)。
MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的完全控制。
MVC 模式定义 Web 应用程序 业务层(模型逻辑) 显示层(视图逻辑) 输入控制(控制器逻辑) |
Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。
通常模型对象负责在数据库中存取数据。
View(视图)是应用程序中处理数据显示的部分。
通常视图是依据模型数据创建的。
Controller(控制器)是应用程序中处理用户交互的部分。
通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
MVC 分层有助于管理复杂的应用程序,因为您可以在一个时间内专门关注一个方面。例如,您可以在不依赖业务逻辑的情况下专注于视图设计。同时也让应用程序的测试更加容易。
MVC 分层同时也简化了分组开发。不同的开发人员可同时开发视图、控制器逻辑和业务逻辑。
Web Forms 对比 MVC
MVC 编程模式是对传统 ASP.NET(Web Forms)的一种轻量级的替代方案。它是轻量级的、可测试性高的框架,同时整合了所有已有的 ASP.NET 特性,比如母版页、安全性和认证。
Visual Studio Express 2012/2010
Visual Studio Express 是 Microsoft Visual Studio 的免费版本。
Visual Studio Express 是为 MVC(和 Web Forms)量身定制的开发工具。
Visual Studio Express 包含:
- MVC 和 Web Forms
- 拖拽 Web 控件和 Web 组件
- Web 服务器语言(Razor 使用 VB 或者 C#)
- Web 服务器(IIS Express)
- 数据库服务器(SQL Server Compact)
- 完整的 Web 开发框架(ASP.NET)
如果您已经安装了 Visual Studio Express,您将从本教程中学到更多。
如果您想安装 Visual Studio Express,请点击下列链接中的一个:
Visual Web Developer 2012(Windows 7 或者 Windows 8)
Visual Web Developer 2010(Windows Vista 或者 XP)
在您首次安装完 Visual Studio Express 之后,您可以通过再次运行安装程序来安装补丁和服务包,只需要再次点击链接即可。 |
以上就是关于 ASP.NET MVC 的介绍。
ASP.NET MVC Web 应用程序
ASP.NET MVC - Internet 应用程序
本节为你讲解如何创建 Web 应用程序。
为了学习 ASP.NET MVC,我们将构建一个 Internet 应用程序。
第 1 部分:创建应用程序。
我们将构建什么
我们将构建一个支持添加、编辑、删除和列出数据库存储信息的 Internet 应用程序。
我们将做什么
Visual Web Developer 提供了构建 Web 应用程序的不同模板。
我们将使用 Visual Web Developer 来创建一个带 HTML5 标记的空的 MVC Internet 应用程序。
当这个空白的 Internet 应用程序被创建之后,我们将逐步向该应用添加代码,直到全部完成。我们将使用 C#作为编程语言,并使用最新的 Razor 服务器代码标记。
沿着这个思路,我们将讲解这个应用程序的内容、代码和所有组件。
创建 Web 应用程序
如果您已经安装了 Visual Web Developer ,请启动 Visual Web Developer 并选择 New Project 来新建项目。 否则您就只能通过阅读教程来学习了。
在 New Project 对话框中:
- 打开Visual C#模板
- 选择模板 ASP.NET MVC 3 Web Application
- 设置项目名称为 MvcDemo
- 设置磁盘位置,比如 c:\cs_demo
- 点击 OK
当 New Project 对话框打开时:
- 选择 Internet Application 模板
- 选择 Razor Engine(Razor 引擎)
- 选择 HTML5 Markup(HTML5 标记)
- 点击 OK
Visual Studio Express 将创建一个如下所示的类似项目:
我们将在本教程的下一章中探究有关文件和文件夹的内容。
ASP.NET MVC 文件夹
ASP.NET MVC - 应用程序文件夹
ASP.NET MVC Web 应用程序中应该包含哪些需要使用的文件夹?在本节中将进行介绍。
为了学习 ASP.NET MVC,我们将构建一个 Internet 应用程序。
第 2 部分:探究应用程序文件夹。
MVC 文件夹
一个典型的 ASP.NET MVC Web 应用程序的文件夹内容如下所示:
| 应用程序信息 Properties 应用程序文件夹 App_Data 文件夹 Content 文件夹 Controllers 文件夹 Models 文件夹 Scripts 文件夹 Views 文件夹 配置文件 Global.asax |
所有的 MVC 应用程序的文件夹名称都是相同的。MVC 框架是基于默认的命名。控制器写在 Controllers 文件夹中,视图写在 Views 文件夹中,模型写在 Models 文件夹中。您不必再应用程序代码中使用文件夹名称。
标准化的命名减少了代码量,同时有利于开发人员对 MVC 项目的理解。
下面是对每个文件夹内容的简短概述:
App_Data 文件夹
App_Data 文件夹用于存储应用程序数据。
我们将在本教程后面的章节中介绍添加 SQL 数据库到 App_Data 文件夹。
Content 文件夹
Content 文件夹用于存放静态文件,比如样式表(CSS 文件)、图标和图像。
Visual Web Developer 会自动添加一个 themes 文件夹到 Content 文件夹中。themes 文件夹存放 jQuery 样式和图片。在项目中,您可以删除这个 themes 文件夹。
Visual Web Developer 同时也会添加一个标准的样式表文件到项目中:即 content 文件夹中的 Site.css 文件。这个样式表文件是您想要改变应用程序样式时需要编辑的文件。
我们将在本教程的下一章中编辑这个样式表文件(Site.css)。
Controllers 文件夹
Controllers 文件夹包含负责处理用户输入和相应的控制器类。
MVC 要求所有控制器文件的名称以 "Controller" 结尾。
Visual Web Developer 已经创建好一个 Home 控制器(用于 Home 页面和 About 页面)和一个 Account 控制器(用于 Login 页面):
我们将在本教程后面的章节中创建更多的控制器。
Models 文件夹
Models 文件夹包含表示应用程序模型的类。模型控制并操作应用程序的数据。
我们将在本教程后面的章节中创建模型(类)。
Views 文件夹
Views 文件夹用于存储与应用程序的显示相关的 HTML 文件(用户界面)。
Views 文件夹中包含每个控制器对应的一个文件夹。
在 Views 文件夹中,Visual Web Developer 已经创建了一个 Account 文件夹、一个 Home 文件夹、一个 Shared 文件夹。
Account 文件夹包含用于用户账号注册和登录的页面。
Home 文件夹用于存储诸如 home 页和 about 页之类的应用程序页面。
Shared 文件夹用于存储控制器间分享的视图(母版页和布局页)。
我们将在本教程的下一章中编辑这些布局文件。
Scripts 文件夹
Scripts 文件夹存储应用程序的 JavaScript 文件。
默认情况下,Visual Web Developer 在这个文件夹中存放标准的 MVC、Ajax 和 jQuery 文件:
注释:名为 "modernizr" 的文件是用于使应用程序支持 HTML5 和 CSS3 的 JavaScript 文件。
ASP.NET MVC 页面和布局
ASP.NET MVC - 样式和布局
本节介绍 ASP.NET MVC 应用程序中每个页面的布局以及样式该如何设置。
为了学习 ASP.NET MVC,我们将构建一个 Internet 应用程序。
第 3 部分:添加样式和统一的外观(布局)。
添加布局
文件 _Layout.cshtml 表示应用程序中每个页面的布局。它位于 Views 文件夹中的 Shared 文件夹。
打开文件 _Layout.cshtml,把内容替换成:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>@ViewBag.Title</title>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")"></script>
<script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")"></script>
</head>
<body>
<ul id="menu">
<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.ActionLink("Movies", "Index", "Movies")</li>
<li>@Html.ActionLink("About", "About", "Home")</li>
</ul>
<section id="main">
@RenderBody()
<p>Copyright Beyond 2018. All Rights Reserved.</p>
</section>
</body>
</html>
HTML 帮助器
在上面的代码中,HTML 帮助器用于修改 HTML 输出:
@Url.Content() - URL 内容将在此处插入。
@Html.ActionLink() - HTML 链接将在此处插入。
在本教程后面的章节中,您将学到更多关于 HTML 帮助器的知识。
Razor 语法
在上面的代码中,红色标记的代码是使用 Razor 标记的 C#。
@ViewBag.Title - 页面标题将在此处插入。
@RenderBody() - 页面内容将在此处呈现。
您可以在我们的 Razor 教程中学习关于 C# 和 VB(Visual Basic)的 Razor 标记的知识。
添加样式
应用程序的样式表是 Site.css,位于 Content 文件夹中。
打开文件 Site.css,把内容替换成:
body
{
font: "Trebuchet MS", Verdana, sans-serif;
background-color: #5c87b2;
color: #696969;
}
h1
{
border-bottom: 3px solid #cc9900;
font: Georgia, serif;
color: #996600;
}
#main
{
padding: 20px;
background-color: #ffffff;
border-radius: 0 4px 4px 4px;
}
a
{
color: #034af3;
}
/* Menu Styles ------------------------------*/
ul#menu
{
padding: 0px;
position: relative;
margin: 0;
}
ul#menu li
{
display: inline;
}
ul#menu li a
{
background-color: #e8eef4;
padding: 10px 20px;
text-decoration: none;
line-height: 2.8em;
/*CSS3 properties*/
border-radius: 4px 4px 0 0;
}
ul#menu li a:hover
{
background-color: #ffffff;
}
/* Forms Styles ------------------------------*/
fieldset
{
padding-left: 12px;
}
fieldset label
{
display: block;
padding: 4px;
}
input[type="text"], input[type="password"]
{
width: 300px;
}
input[type="submit"]
{
padding: 4px;
}
/* Data Styles ------------------------------*/
table.data
{
background-color:#ffffff;
border:1px solid #c3c3c3;
border-collapse:collapse;
width:100%;
}
table.data th
{
background-color:#e8eef4;
border:1px solid #c3c3c3;
padding:3px;
}
table.data td
{
border:1px solid #c3c3c3;
padding:3px;
}
_ViewStart 文件
Shared 文件夹(位于 Views 文件夹内)中的 _ViewStart 文件包含如下内容:
@{Layout = "~/Views/Shared/_Layout.cshtml";}
这段代码被自动添加到由应用程序显示的所有视图。
如果您删除了这个文件,则必须向所有视图中添加这行代码。
在本教程后面的章节中,您将学到更多关于视图的知识。
ViewStart 视图一般是直接存在与 Views 视图下面的。当然其他文件夹下面也是可以有 ViewStart. 视图页面的(前提是这个文件夹是在 Views 文件夹下)。
ASP.NET MVC 控制器
ASP.NET MVC - 控制器
本节介绍了 ASP.NET MVC 控制器的使用。
为了学习 ASP.NET MVC,我们将构建一个 Internet 应用程序。
第 4 部分:添加控制器。
Controllers 文件夹
Controllers 文件夹包含负责处理用户输入和响应的控制类。
MVC 要求所有控制器文件的名称以 "Controller" 结尾。
在我们的实例中,Visual Web Developer 已经创建好了一下文件: HomeController.cs(用于 Home 页面和 About 页面)和AccountController.cs (用于登录页面):
Web 服务器通常会将进入的 URL 请求直接映射到服务器上的磁盘文件。例如:URL 请求 "//www.baidu.com/index.php" 将直接映射到服务器根目录上的文件 "index.php"。
MVC 框架的映射方式有所不同。MVC 将 URL 映射到方法。这些方法在类中被称为"控制器"。
控制器负责处理进入的请求,处理输入,保存数据,并把响应发送回客户端。
Home 控制器
在我们应用程序中的控制器文件HomeController.cs,定义了两个控件 Index 和 About。
把 HomeController.cs 文件的内容替换成:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MvcDemo.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{return View();}
public ActionResult About()
{return View();}
}
}
Controller 视图
Views 文件夹中的文件 Index.cshtml 和 About.cshtml 定义了控制器中的 ActionResult 视图 Index() 和 About()。
ASP.NET MVC 视图
ASP.NET MVC - 视图
本节介绍了 ASP.NET MVC 视图,View 文件夹中包含每个控制器对应的一个文件夹,每一个操作方法都有一个同名的视图文件与其对应。这就提供了视图与操作方法关联的基础。
为了学习 ASP.NET MVC,我们将构建一个 Internet 应用程序。
第 5 部分:添加用于显示应用程序的视图。
Views 文件夹
Views 文件夹存储的是与应用程序显示(用户界面)相关的文件(HTML 文件)。根据所采用的语言内容,这些文件可能扩展名可能是 html、asp、aspx、cshtml 和 vbhtml。
Views 文件夹中包含每个控制器对应的一个文件夹。
在 Views 文件夹中,Visual Web Developer 已经创建了一个 Account 文件夹、一个 Home 文件夹、一个 Shared 文件夹。
Account 文件夹包含用于用户账号注册和登录的页面。
Home 文件夹用于存储诸如 home 页和 about 页之类的应用程序页面。
Shared 文件夹用于存储控制器间分享的视图(母版页和布局页)。
ASP.NET 文件类型
在 Views 文件夹中可以看到以下 HTML 文件类型:
文件类型 | 扩展名 |
纯 HTML | .htm or .html |
经典 ASP | .asp |
经典 ASP.NET | .aspx |
ASP.NET Razor C# | .cshtml |
ASP.NET Razor VB | .vbhtml |
Index 文件
文件 Index.cshtml 表示应用程序的 Home 页面。它是应用程序的默认文件(首页文件)。
在文件中写入以下内容:
@{ViewBag.Title = "Home Page";}
<h1>Hello Beyond</h1>
<p>Put Home Page content here</p>
About 文件
文件 About.cshtml 表示应用程序的 About 页面。
在文件中写入以下内容:
@{ViewBag.Title = "About Us";}
<h1>About Us</h1>
<p>Put About Us content here</p>
运行应用程序
选择 Debug,从 Visual Web Developer 菜单中启动调试 Start Debugging(或者按 F5)。
您的应用程序将显示如下:
点击 "Home" 标签页和 "About" 标签页,看看它是如何运作的。
祝贺您
祝贺您。您已经创建好了您的第一个 MVC 应用程序。
注释:您暂时还不能点击 "Movies" 标签页。我们将在本教程的后面章节中为 "Movies" 标签页添加代码。
ASP.NET MVC 数据库
ASP.NET MVC - SQL 数据库
本节讲解 ASP.NET MVC 数据库的创建与数据库数据的添加。
为了学习 ASP.NET MVC,我们将构建一个 Internet 应用程序。
第 6 部分:添加数据库。
创建数据库
Visual Web Developer 带有名为 SQL Server Compact 免费的 SQL 数据库。
本教程所需的这个数据库可以通过以下几个简单的步骤来创建:
- 右击 Solution Explorer 窗口中的 App_Data 文件夹
- 选择 Add, New Item
- 选择 SQL Server Compact Local Database *
- 将数据库命名为 Movies.sdf
- 点击 Add 按钮
* 如果选项中没有 SQL Server Compact Local Database,则说明您尚未在计算机上安装 SQL Server Compac。
Visual Web Developer 会自动在 App_Data 文件夹中创建该数据库。
注释:在本教程中,需要您掌握一些关于 SQL 数据库的基础知识。
添加数据库表
双击 App_Data 文件夹中的 Movies.sdf 文件,将打开 Database Explorer 窗口。
如需在数据库中创建一个新的表,请右击 Tables 文件夹,然后选择 Create Table。
创建如下的列:
列 | 类型 | 是否允许为 Null |
ID | int (primary key) | No |
Title | nvarchar(100) | No |
Director | nvarchar(100) | No |
Date | datetime | No |
对列的解释:
ID 是用于标识表中每条记录的整数(全数字)。
Title 是 100 个字符长度的文本列,用于存储影片的名称。
Director 是 100 个字符长度的文本列,用于存储导演的名字。
Date 是日期列,用于存储影片的发布日期。
在创建好上述列之后,您必须将 ID 列设置为表的主键(记录标识符)。要做到这点,请点击列名(ID),并选择 Primary Key。在 Column Properties 窗口中,设置 Identity 属性为 True:
当您创建好表列后,保存表并命名为 MovieDBs。
注释:
我们特意把表命名为 "MovieDBs"(以 s 结尾)。在下一章中,您将看到用于数据模型的 "MovieDB"。这看起来有点奇怪,不过这种命名惯例能确保控制器连接上数据库表,您必须这么使用。
添加数据库记录
您可以使用 Visual Web Developer 向 movie 数据库中添加一些测试记录。
双击 App_Data 文件夹中的 Movies.sdf 文件。
右击 Database Explorer 窗口中的 MovieDBs 表,并选择 Show Table Data。
添加一些记录:
ID | Title | Director | Date |
1 | Psycho | Alfred Hitchcock | 01.01.1960 |
2 | La Dolce Vita | Federico Fellini | 01.01.1960 |
注释:ID 列会自动更新,您可以不用编辑它。
添加连接字符串
向您的 Web.config 文件中的 <connectionStrings> 元素添加如下元素:
<add name="MovieDBContext"
connectionString="Data Source=|DataDirectory|Movies.sdf"
providerName="System.Data.SqlServerCe.4.0"/>
ASP.NET MVC 模型
ASP.NET MVC - 模型
使用 ASP.NET MVC 模型,你可以控制并操作应用程序数据。
为了学习 ASP.NET MVC,我们将构建一个 Internet 应用程序。
第 7 部分:添加数据模型。
MVC 模型
MVC 模型包含了除纯视图和控制器逻辑以外的其他所有应用程序逻辑(业务逻辑、验证逻辑、数据访问逻辑)。
通过 MVC,模型可以控制并操作应用程序数据。
Models 文件夹
Models 文件夹包含表示应用程序模型的类。
Visual Web Developer 自动创建一个 AccountModels.cs 文件,该文件包含用于应用程序安全的模型。
AccountModels 包含 LogOnModel、ChangePasswordModel 和 RegisterModel。
添加数据库模型
本教程所需的数据库模型可以通过以下几个简单的步骤来创建:
- 在 Solution Explorer窗口中,右击 Models 文件夹,并选择 Add 和 Class。
- 将类命名为 MovieDB.cs,然后点击 Add。
- 编辑这个类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;
namespace MvcDemo.Models
{
public class MovieDB
{
public int ID { get; set; }
public string Title { get; set; }
public string Director { get; set; }
public DateTime Date { get; set; }
}
public class MovieDBContext : DbContext
{
public DbSet<MovieDB> Movies { get; set; }
}
}
注释:
我们特意把模型命名为 "MovieDB"。在上一章中,您已经看到用于数据库表的 "MovieDBs"(以 s 结尾)。这看起来有点奇怪,不过这种命名惯例能确保模型连接上数据库表,您必须这么使用。
添加数据库控制器
本教程所需的数据库控制器可以通过以下几个简单的步骤来创建:
- 重建您的项目:选择 Debug,然后从菜单中选择 Build MvcDemo。
- 在 Solution Explorer(解决方案资源管理器)中,右击 Controllers 文件夹,选择 Add 和 Controller。
- 设置控制器名称为 MoviesController。
- 选择模板:Controller with read/write actions and views, using Entity Framework
- 选择模型类:MovieDB (MvcDemo.Models)
- 选择 data context 类:MovieDBContext (MvcDemo.Models)
- 选择视图 Razor (CSHTML)
- 点击 Add
Visual Web Developer 将创建以下文件:
- Controllers 文件夹中的 MoviesController.cs 文件
- Views 文件夹中的 Movies 文件夹
添加数据库视图
在 Movies 文件夹中,会自动创建以下文件:
- Create.cshtml
- Delete.cshtml
- Details.cshtml
- Edit.cshtml
- Index.cshtml
祝贺您
祝贺您。您已经向应用程序添加了您的第一个 MVC 数据模型。
现在您可以点击 "Movies" 标签页了。
ASP.NET MVC 安全
ASP.NET MVC - 安全
本节介绍 ASP.NET MVC 的安全问题。
为了学习 ASP.NET MVC,我们将构建一个 Internet 应用程序。
第 8 部分:添加安全。
MVC 应用程序安全
Models 文件夹包含表示应用程序模型的类。
Visual Web Developer 自动创建 AccountModels.cs 文件,该文件包含用于应用程序认证的模型。
AccountModels 包含 LogOnModel、ChangePasswordModel 和 RegisterModel:
Change Password 模型
public class ChangePasswordModel
{
[Required]
[DataType(DataType.Password)]
[Display(Name = "Current password")]
public string OldPassword { get; set; }
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "New password")]
public string NewPassword { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm new password")]
[Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
}
Logon 模型
public class LogOnModel
{
[Required]
[Display(Name = "User name")]
public string UserName { get; set; }
[Required]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[Display(Name = "Remember me?")]
public bool RememberMe { get; set; }
}
Register 模型
public class RegisterModel
{
[Required]
[Display(Name = "User name")]
public string UserName { get; set; }
[Required]
[DataType(DataType.EmailAddress)]
[Display(Name = "Email address")]
public string Email { get; set; }
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm password")]
[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
}
ASP.NET MVC HTML 帮助器
ASP.NET MVC - HTML 帮助器
ASP.NET MVC 框架包含帮助器方法,通过使用这些帮助器方法,可以轻松地在视图中呈现 HTML。
HTML 帮助器用于修改 HTML 输出。
HTML 帮助器
通过 MVC,HTML 帮助器类似于传统的 ASP.NET Web Form 控件。
就像 ASP.NET 中的 Web Form 控件,HTML 帮助器用于修改 HTML。但是 HTML 帮助器是更轻量级的。与 Web Form 控件不同,HTML 帮助器没有事件模型和视图状态。
在大多数情况下,HTML 帮助器仅仅是一个返回字符串的方法。
通过 MVC,您可以创建您自己的帮助器,或者直接使用内建的 HTML 帮助器。
标准的 HTML 帮助器
MVC 包含了大多数常用的 HTML 元素类型的标准帮助器,比如 HTML 链接和 HTML 表单元素。
HTML 链接
呈现 HTML 链接的最简单的方法是使用 HTML.ActionLink() 帮助器。
通过 MVC,Html.ActionLink() 不连接到视图。它创建一个连接到控制器操作。
Razor 语法:
@Html.ActionLink("About this Website", "About")
ASP 语法:
<%=Html.ActionLink("About this Website", "About")%>
第一个参数是链接文本,第二个参数是控制器操作的名称。
上面的 Html.ActionLink() 帮助器,输出以下的 HTML:
<a href="/Home/About">About this Website</a>
Html.ActionLink() 帮助器的一些属性:
属性 | 描述 |
.linkText | URL 文本(标签),定位点元素的内部文本。 |
.actionName | 操作(action)的名称。 |
.routeValues | 传递给操作(action)的值,是一个包含路由参数的对象。 |
.controllerName | 控制器的名称。 |
.htmlAttributes | URL 的属性设置,是一个包含要为该元素设置的 HTML 特性的对象。 |
.protocol | URL 协议,如 "http" 或 "https"。 |
.hostname | URL 的主机名。 |
.fragment | URL 片段名称(定位点名称)。 |
注释:您可以向控制器操作传递值。例如,您可以向数据库 Edit 操作传递数据库记录的 id:
Razor 语法 C#:
@Html.ActionLink("Edit Record", "Edit", new {Id=3})
Razor 语法 VB:
@Html.ActionLink("Edit Record", "Edit", New With{.Id=3})
上面的 Html.ActionLink() 帮助器,输出以下的 HTML:
<a href="/Home/Edit/3">Edit Record</a>
HTML 表单元素
以下 HTML 帮助器可用于呈现(修改和输出)HTML 表单元素:
- BeginForm()
- EndForm()
- TextArea()
- TextBox()
- CheckBox()
- RadioButton()
- ListBox()
- DropDownList()
- Hidden()
- Password()
ASP.NET 语法 C#:
<%= Html.ValidationSummary("Create was unsuccessful. Please correct the errors and try again.") %>
<% using (Html.BeginForm()){%>
<p>
<label for="FirstName">First Name:</label>
<%= Html.TextBox("FirstName") %>
<%= Html.ValidationMessage("FirstName", "*") %>
</p>
<p>
<label for="LastName">Last Name:</label>
<%= Html.TextBox("LastName") %>
<%= Html.ValidationMessage("LastName", "*") %>
</p>
<p>
<label for="Password">Password:</label>
<%= Html.Password("Password") %>
<%= Html.ValidationMessage("Password", "*") %>
</p>
<p>
<label for="Password">Confirm Password:</label>
<%= Html.Password("ConfirmPassword") %>
<%= Html.ValidationMessage("ConfirmPassword", "*") %>
</p>
<p>
<label for="Profile">Profile:</label>
<%= Html.TextArea("Profile", new {cols=60, rows=10})%>
</p>
<p>
<%= Html.CheckBox("ReceiveNewsletter") %>
<label for="ReceiveNewsletter" style="display:inline">Receive Newsletter?</label>
</p>
<p>
<input type="submit" value="Register" />
</p>
<%}%>
以上就是关于 ASP.NET MVC HTML 帮助器的介绍。
ASP.NET MVC - 发布
ASP.NET MVC - 发布网站
本节学习 ASP.NET MVC 网站是如何发布的。
学习如何在不使用 Visual Web Developer 的情况下发布 MVC 应用程序。
在不使用 Visual Web Developer 的情况下发布您的应用程序
通过在 WebMatrix、Visual Web Developer 或 Visual Studio 中使用发布命令,可以发布一个 ASP.NET MVC 应用程序到远程服务器上。
此功能会复制所有您的应用程序文件、控制器、模型、图像以及用于 MVC、Web Pages、Razor、Helpers、SQL Server Compact(如果使用数据库)所有必需的 DLL 文件。
有时您不希望使用这些选项。或许您的主机提供商仅支持 FTP?或许您的网站基于经典 ASP?或许您希望亲自拷贝这些文件?又或许您希望使用 Front Page、Expression Web 等其他一些发布软件?
您会遇到问题吗?是的,会的。但是您有办法解决它。
要执行网站复制,您必须知道如何引用正确的文件,哪些 DLL 文件需要复制,并在何处存储它们。
请按照下列步骤操作:
1. 使用最新版本的 ASP.NET
在您继续操作之前,请确保您的主机运行的是最新版的 ASP.NET(4.0 或者 4.5)。
2. 复制 Web 文件夹
从您的开发计算机上复制您的网站(所有文件夹和内容)到远程主机(服务器)上的应用程序文件夹中。
如果您的 App_Data 文件夹中包含测试数据,请不要复制这个 App_Data 文件夹(详见下面的第 5 点)。
3. 复制 DLL 文件
在远程服务器上的应用程序根目录中创建 bin 文件夹。(如果您已经安装 Helpers,则 bin 文件夹已经存在)
复制下列文件夹中的所有文件:
C:Program Files (x86)Microsoft ASP.NETASP.NET Web Pagesv1.0Assemblies
C:Program Files (x86)Microsoft ASP.NETASP.NET MVC 3Assemblies
到您的远程服务器上的应用程序的 bin 文件夹中。
4. 复制 SQL Server Compact DLL 文件
如果您的应用程序使用了 SQL Server Compact 数据库(在 App_Data 文件夹中的一个 .sdf 文件),那么您必须复制 SQL Server Compact DLL 文件:
复制下列文件夹中的所有文件:
C:Program Files (x86)Microsoft SQL Server Compact Editionv4.0Private
到您的远程服务器上的应用程序的 bin 文件夹中。
创建(或者编辑)应用程序的 Web.config 文件:
实例 C#
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SqlServerCe.4.0" />
<add invariant="System.Data.SqlServerCe.4.0"
name="Microsoft SQL Server Compact 4.0"
description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.1,Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
</DbProviderFactories>
</system.data>
</configuration>
5. 复制 SQL Server Compact 数据
您的 App_Data 文件夹中有没有包含测试数据的 .sdf 文件?
您是否希望发布您的测试数据到远程服务器上?
大多数时候一般是不希望。
如果您一定要复制 SQL 数据文件(.sdf 文件),那么您应该删除数据库中的所有数据,然后从您的开发计算机上复制一个空的 .sdf 文件到服务器上。
就是这样。GOOD LUCK!
以上就是在不使用 Visual Web Developer 的情况下发布 MVC 应用程序的全部内容了。