现在的位置: 首页 > 综合 > 正文

.NET MVC2 练习笔记

2013年08月07日 ⁄ 综合 ⁄ 共 2532字 ⁄ 字号 评论关闭

本练习案例在Visual Studio 2010 平台 上操作

1.新建项目工程,选择“ASP.NET MVC 2 Web 应用程序”(不是它的空应用程序)
  名称:MyUser
  位置:D:\msproject\
  解决方案名称:MyApps
 下一步会提示你是否创建测试工程,默认选择,则生成工程文件。
 1)关于测试工程:这时如果你马上右键点解决方案选择生成(build),会报错,因为测试工程还没有添加web工程的引用。
 右键点下面测试工程(MyApps.Tests)下面的引用(reference),选择“添加引用”,弹出窗默认项目里显示了你新建的项目,点确定引用。
 添加完引用之后,再右键解决方案生成,就不会报错了。
 2)然后"运行解决方案中的测试(ctrl+R,A)",测试按钮组合的第二个按钮,下方框会进行测试工程的测试。
 关于是否创建成功:“调试”->“启动调试”(按F5),会跳出默认页面

2.创建数据库,使用SQL express创建测试用表
 1)右键点解决方案,选择添加新建项,在弹出窗左边选择“数据”,右边选择“SQL server 数据库”,名称为MyApps.mdf,保存时会提示你保存到App_Data文件夹,选择“是”,完成添加。
 如果创建实例失败,则要检查下你的SQL express服务是否有开。
 2)双击右边工程里的MyApps.mdf,会打开该数据库的连接。右键点表选择添加新表,会切换到添加列的页面。
  userid    int    属性中选择自增长
  username nvarchar(50)
  nickname nvarchar(50)
  phone  nvarchar(50)

3.创建Model层,涉及内容有:LING to SQL 、Entity Framework 4、创建实体类、创建接口

(1)右键点Models选择添加新项目,“数据”-->“ADO.NET 实体数据模型”,点添加,在弹出窗选择“从数据库生成”进行下一步
---- 下拉菜单选择你刚才建的数据库,点下一步后会显示出该数据库的所有表信息,可选择的有表、视图、存储过程,建议全选;
---- 勾选“确定所生对象名称的单复数形式”,点完成后便开始生成实体模型;
---- 最后会跳到MyUser.edmx关系图的页面,当中的MyUserEntities会注册到Web.config文件中;
---- 这个实体关系图里面,会有名称和实体集名称,都自动命名跟表名一样;
---- 比如在这里
 名称:User (默认)
 实体集名称:Users (勾选“确定所生对象名称的单复数形式”的结果)

(2)添加对应的数据模型访问接口类,右键点Models选择新建项,"代码"-->"接口"即可生产接口文件。
给接口文件添加一些最基本的方法:
 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;

 namespace MyUser.Models
 {
     interface IMyUserDao
     {
         public IQueryable<MyUser> FindAll();
         public IQueryable<MyUser> FindMyUser();
         public MyUser GetMyUser(int id);
         public void Add(MyUser user);
         public void Delete(MyUser user);
         public void Save(MyUser user);
     }
 }
   
3)实现数据访问对象的接口,vs的继续没有myeclipse那样方便,在新建的时候可以查找选择你要继承的接口。
接口层实现需要手动写继承接口和实现接口中的方法。
这过程出现一个错误:
 namespace MyUser.Models
 {
     public class MyUserDao : MyUser.Models.IMyUserDao //右键点接口选择实现接口
     {
     }
 }
正确:
 namespace MyUser.Models
 {
     public class MyUserDao : IMyUserDao //右键点接口选择实现接口
     {
     }
 }
 
这里步骤就主要2个部分:一是新定义数据访问对象,二是实现接口,并用数据访问对象进行操作
例如:
    //声明数据访问接口
    MyUserEntities db = new MyUserEntities(); // MyUser.edmx中的MyUser.Designer.cs中定义

    public IQueryable<MyUser> FindAll()
    {
        return db.Users;
    }

4. 创建controller层,注意这一层的routing路由(即url重写)是在Global.asax文件中

(1)右键点Controller文件夹,选择新建控制器类,命名UserController.cs
(2)默认有Index()的action,再加一个Detail()的action,在方法里面调用数据库访问对象实现功能
(3)右键点View选择添加视图(View),命名为NotFound,完成后在View目录下自动创建NotFound.aspx。
    一般情况下,我们根据对应的方法来生产视图文件,即鼠标点在方法所在行,右键选择添加视图。
    这样生成的视图文件自动放在User目录下,这样的路径才正确,才能正确访问。

注意!我们的增删改查可以用强制类型的View来实现:
    1)右键点Action行添加新视图,在弹出窗中勾选创建强类型视图。
    2)勾选后,在视图数据类中指定对应的Model,在视图内容中选择具体操作,如本方法的Details。
    3)完成后,系统会自动生成一个跟Model类中字段对应的Detail.apsx页面,十分方便。
    4)我们同样可以在Index方法中生成强类型视图List,这样我们就有了简单的Index.apsx页面。

5.注意生成。

抱歉!评论已关闭.