理解ASP.NET中MVC 编程模型 第3章 数据模型

MVC 模型

MVC 模型包含所有应用程序逻辑(业务逻辑、验证逻辑、数据访问逻辑),除了纯视图和控制器逻辑。通过 MVC,模型可保存并操作应用程序数据。

Models 文件夹

Models 文件夹包含表示应用程序模型的类。

以登录验证为例,创建一个 AccountModels.cs 文件,用于应用程序安全的模型。

AccountModels 包含 LogOnModelChangePasswordModel 以及 RegisterModel

LogOnModel:

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; }

}

RegisterModel

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; }

}

ChangePasswordModel

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; }

}

添加数据库模型

解决方案管理器中,右键点击 Models 文件夹,选择添加

以添加MovieDB.cs 为例

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; }
}
}

添加数据库控制器

  1. 在解决方案资源管理器中,右键点击 Controllers 文件夹,然后选择添加、控制器。
  2. 把控制器名称设置为 MoviesController
  3. 选择模板:Controller with read/write actions and views, using Entity Framework
  4. 选择模型类:MovieDB (MvcDemo.Models)
  5. 选择 data context 类:MovieDBContext (MvcDemo.Models)
  6. 选择视图 Razor (CSHTML)
  7. 点击添加

Visual Studio 将创建如下文件:

  • Controllers 文件夹中的 MoviesController.cs 文件
  • Views 文件夹中的 Movies 文件夹

添加数据库视图

以下文件会被自动地在 Movies 文件夹中创建:

  • Create.cshtml
  • Delete.cshtml
  • Details.cshtml
  • Edit.cshtml
  • Index.cshtml
时间: 2024-12-06 17:27:09

理解ASP.NET中MVC 编程模型 第3章 数据模型的相关文章

理解ASP.NET中MVC 编程模型 第5章 引用参考

类 类 说明 AcceptVerbsAttribute 表示一个特性,该特性指定操作方法将响应的 HTTP 谓词. ActionDescriptor 提供有关操作方法的信息,如操作方法的名称.控制器.参数.特性和筛选器. ActionExecutedContext 提供 ActionFilterAttribute 类的 ActionExecuted 方法的上下文. ActionExecutingContext 提供 ActionFilterAttribute 类的 ActionExecuting

理解ASP.NET中MVC 编程模型 第1章 MVC 样式和布局

添加布局 文件 _Layout.cshtml 表示应用程序中每个页面的布局.它位于 Views 文件夹中的 Shared 文件夹. 如以下示例 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>@ViewBag.Title</title> <link href="@Url.Content("~/Content/Sit

理解ASP.NET中MVC 编程模型 第4章 HTML帮助器

HTML 帮助器用于修改 HTML 输出. HTML 帮助器 HTML 帮助器用于修改 HTML,HTML 帮助器没有事件模型和 view state.在大多数情况下,HTML 帮助器仅仅是返回字符串的方法. 标准的 HTML 帮助器 MVC 包含了大多数常用的 HTML 元素类型的标准帮助器,比如 HTML 链接和 HTML 表单元素. HTML 链接 呈现 HTML 链接的最简单方法是使用 HTML.ActionLink() 帮助器. 通过 MVC,Html.ActionLink() 不连接

理解ASP.NET中MVC 编程模型 上

MVC 编程模型 MVC 是 ASP.NET 开发模型之一. MVC 是用于构建 web 应用程序的一种框架,使用 MVC (Model View Controller) 设计: Model(模型)表示应用程序核心(比如数据库记录列表) View(视图)对数据(数据库记录)进行显示 Controller(控制器)处理输入(写入数据库记录) MVC 模型同时提供对 HTML.CSS 以及 JavaScript 的完整控制. MVC 模型通过三个逻辑层来定义 web 应用程序: business l

MVC 编程模型及其变种

MVC 编程模型及其变种 MVC全称是Model View Controller, 这是一个模型(model)-查看(view)-调节器(controller)缩写,这是通过通用的编程模型非.MVC当为了分离数据和视图首次提出,数据和实体之间的关系.这就是关注点分离的设计理念,也是单一职责原则(Single-Resposibility Principle). 在我们的开发过程中, 视图用来展现界面, 我们的模型处理业务, 持有数据, 而控制器是他们之间的中间人. GoF四人组觉得MVC是"一组用

Asp.Net中MVC缓存详解

本文通过介绍了Asp.Net中MVC缓存的种类,以及他们之间的区别等内容,让学习者能够深入的了解MVC缓存的原理机制,以下是具体内容: 缓存是一种保存资源副本并在下次请求时直接使用该副本的技术.当 web 缓存发现请求的资源已经被存储,它会拦截请求,返回该资源的拷贝. Web应用缓存技术大体上可以分为两类:服务端缓存和客户端缓存.两种目标都是减少重复性内容的生成和网络传输工作,因为缓存数据存储的位置不同,而分为服务端缓存和客户端缓存. 服务端缓存 服务端缓存技术关注于服务端数据查询,生成或者操作

ASP.NET MVC编程——模型

1 ViewModel 是一种专门提供给View使用的模型,使用ViewModel的理由是实体或领域模型所包含的属性比View使用的多或少,这种情况下实体或领域模型不适合View使用. 2模型绑定 默认模型绑定器 通过DefaultModelBinder解析客户端传来的数据,为控制器的操作参数列表赋值.   显示模型绑定 使用UpdateModel和TryUpdateModel显示绑定模型,不会检验未绑定字段. 使用UpdateModel方法绑定模型时,如果绑定失败就会抛异常,而TryUpdat

深入理解asp.net中的 __doPostBack函数

前段时间做一个.net网站的时候,用到了模拟前端按钮刷新updatePanel进行局部刷新的时候,遇见了这个问题,当时没顾上记下来,查看网上资料,记下来留着以后查看. 很早以前,当我刚接触asp.NET开发时,我曾有很多很多的疑问(大概是因为我以前一直做jsp开发,也接触过一段时间的asp,脑海中没有这种基于“控件编程”和“事件编程“模型的缘故吧.当然,如果对于一个长期从事桌面程序开发的人,转型做asp.net--webform当然很轻松.).当我面对这些功能强大的控件,这些属性,这些事件...

ASP.NET Core MVC/WebAPi 模型绑定探索

前言 相信一直关注我的园友都知道,我写的博文都没有特别枯燥理论性的东西,主要是当每开启一门新的技术之旅时,刚开始就直接去看底层实现原理,第一会感觉索然无味,第二也不明白到底为何要这样做,所以只有当你用到了,你再去看理论性的文章时才会豁然开朗,这是我一直以来学习技术的方法.本文我们来讲解.NET Core中的模型绑定. 话题 在ASP.NET Core之前MVC和Web APi被分开,也就说其请求管道是独立的,而在ASP.NET Core中,WebAPi和MVC的请求管道被合并在一起,当我们建立控