ASP.NET MVC3 Step By Step 学习笔记 (2)——创建简单MVC3应用程序

1.选择MVC3 Web应用程序项目

ASP.NET MVC3 Step By Step 学习笔记 (2)——创建简单MVC3应用程序

 

2.选择空模板,视图引擎我们选择Razor

ASP.NET MVC3 Step By Step 学习笔记 (2)——创建简单MVC3应用程序

 

 3.项目新建后,我们能看到默认的JS都不是最新的,所以我们使用NuGet来更新项目内相关组件包

ASP.NET MVC3 Step By Step 学习笔记 (2)——创建简单MVC3应用程序

 

 4.在项目上右键,选择管理Nuget程序包

ASP.NET MVC3 Step By Step 学习笔记 (2)——创建简单MVC3应用程序

 

5.Nuget会列出项目中所有可更新的组件,我们需要更新JqueryJquery UI和Entity Framework到最新版本,点击安装即可

ASP.NET MVC3 Step By Step 学习笔记 (2)——创建简单MVC3应用程序

 

6.更新后我们可以看到相关文件已经全部到最新版本

ASP.NET MVC3 Step By Step 学习笔记 (2)——创建简单MVC3应用程序

 

 

7.环境已经搭好,现在创建一个简单的系统,数据库有一张用户表Tbl_User,用户可以登录,修改等操作,系统使用EF的新特性——数据库迁移,我们不直接操作任何数据表的创建,全部通过EF自动生成

 

创建Tbl_User表的对应model,我们命名为Tbl_User(在自动创建的时候,类名就是数据库表名)

我们在项目文件夹Models中创建了以下Tbl_UserModel 

public class Tbl_User
    {
        [DisplayName("ID")]
        [Key]
        public Guid ID { get; set; } 

        [DisplayName("用户名")]
        [StringLength(20, ErrorMessage = "用输入用户名")]
        [Required]
        public string name { get; set; } 

        [DisplayName("密码")]
        [StringLength(20, MinimumLength = 6, ErrorMessage = "密码至少输入6位")]
        [DataType(DataType.Password)]
        [Required]
        public string pwd { get; set; } 

        [DisplayName("邮箱")]
        [DataType(DataType.EmailAddress)]
        public string email { get; set; } 

        [DisplayName("年龄")]
        [StringLength(1)]
        public int age { get; set; } 

        [DisplayName("创建时间")]
        [Required]
        public DateTime? datetime_create { get; set; }//使用可空类型,在界面绑定时,在没有值的情况下可让绑定后生成的文本框为空
    } 

  

通过给各个属性添加各自的Attribute,来对属性进行约束;在理想状态下,我们的界面甚至不用手动添加属性的描述性文字

在使用Attribute时,需要引入以下命名空间


using System.ComponentModel;

using System.ComponentModel.DataAnnotations;
 

常用Attribute

Required:

指定为必填字段,即指定数据库对应的列不允许为 null 值

StringLength:

指定字段的长度范围,最小长度

NotMapped:

没有对应关系,即此字段不会在数据库中生成对应的列

Key:

指定对应数据库中为主键字段

DisplayName:

属性显示的名称

DataType:

指定要与数据字段关联的附加类型的名称,有个名字为DataType的枚举,用来指定数据类型,并会对其创建对应的验证规则和生成方式

 

 

 

 

 

 

 

 

 

 

我们通过EF自动生成Tbl_User的相关增删改查操作和对应界面,在项目文件夹上右键,创建名字为UserController的控制器(控制器名称中的后缀Controller不能修改,这是MVC的默认约定),选择模板为包含读写和视图的EF控制器,模型类选择刚才我们创建的Tbl_User(需要编译一次才能显示),数据上下文我们使用自动创建的的MvcDemoContext

ASP.NET MVC3 Step By Step 学习笔记 (2)——创建简单MVC3应用程序

 

完成后,VS会自动帮我们生成MvcDemoContextUserControllerUserController对应的视图文件夹View/User(包括查询,创建,编辑,详细,删除页面)

ASP.NET MVC3 Step By Step 学习笔记 (2)——创建简单MVC3应用程序

 

通过数据库迁移自动生成数据库,web.config文件中,创建SQL数据库连接,命名为MVCDemoServices

<connectionStrings>
    <add name="MVCDemoServices" connectionString="Data Source=.;Initial Catalog=MVCDemo;Persist Security Info=True;User ID=sa;Password=123456" providerName="System.Data.SqlClient" />
</connectionStrings>

 

在MVCDemoContext 上下文的构造函数中,指定数据库连接


public class MVCDemoContext : DbContext
{
    public MVCDemoContext() : base("MVCDemoServices") { }

    public DbSet<Tbl_User> Tbl_User { get; set; }
}

 

使用PM控制台,进行数据库迁徙

ASP.NET MVC3 Step By Step 学习笔记 (2)——创建简单MVC3应用程序

 

  • 输入Enable-Migrations自动生成文件夹Migrations和文件Configuration.cs

ASP.NET MVC3 Step By Step 学习笔记 (2)——创建简单MVC3应用程序

ASP.NET MVC3 Step By Step 学习笔记 (2)——创建简单MVC3应用程序

 

  •  输入Add-Migration CreateUser,自动在文件夹Migrations下生成版本文件

ASP.NET MVC3 Step By Step 学习笔记 (2)——创建简单MVC3应用程序

 

  • 输入Update-Database自动创建或者更新数据库

ASP.NET MVC3 Step By Step 学习笔记 (2)——创建简单MVC3应用程序

 

  •  我们进SQL Server Management Studio后发现数据库MVCDemo已经被创建好了

ASP.NET MVC3 Step By Step 学习笔记 (2)——创建简单MVC3应用程序

 

迁移命令:

Enable-Migrations       //启用数据库迁移并创建文件夹

 

Add-Migration AddAuthor // AddAuthor 是任意名,是版本标记

 

Update-Database         //更新数据库

 

Update-Database –TargetMigration:"xxx"  //即可回溯数据库到指定版本

XXX为指定版本,不带.cs,例如:201206171450182_Deletetest

 

先生成EF代码才能使用更新数据库


 

现在运行下系统,输入http://localhost:3556/userMVC默认主页是http://localhost:3556/Home,默认访问index页面,我们没有这个目录,所以我们运行http://localhost:3556/user,会访问到index页面

 

ASP.NET MVC3 Step By Step 学习笔记 (2)——创建简单MVC3应用程序

 

  • 接着,创建一个新的用户,发现当初Tbl_Usermodel写错了,年龄的字段长度设为了1,我们返回model进行修改,去除年龄字段的字符长度

ASP.NET MVC3 Step By Step 学习笔记 (2)——创建简单MVC3应用程序

[DisplayName("年龄")]
public int age { get; set; }

 

  • 修改后,重新运行,保存成功

ASP.NET MVC3 Step By Step 学习笔记 (2)——创建简单MVC3应用程序

ASP.NET MVC3 Step By Step 学习笔记 (2)——创建简单MVC3应用程序

 

  • 在生产的数据库中,我们发现email字段的类型是nvachar(max),实际email不需要这么长,修改为100字符长度即可 
 [DisplayName("邮箱")]
 [DataType(DataType.EmailAddress)]
 [StringLength(100)]
public string email { get; set; }

 

 

  • 编译后重新运行,系统报错

ASP.NET MVC3 Step By Step 学习笔记 (2)——创建简单MVC3应用程序

 

 

 

  • 原因是我们修改了Model中字段的数据字段长度,但数据库中并没有进行修改,所以我们需要使用EF的数据库迁徙,进行数据库更新
  • 打开PM控制台,输入Add-Migration UpdateTbl_User,生成更新文件

 

ASP.NET MVC3 Step By Step 学习笔记 (2)——创建简单MVC3应用程序

 

 

  • 再输入Update-Database进行数据库更新,重新运行成功

ASP.NET MVC3 Step By Step 学习笔记 (2)——创建简单MVC3应用程序

 

转载于:https://www.cnblogs.com/godson321/archive/2012/07/04/2575464.html