章节一 MVC5

MVC全名是Model View Controller,是模型(model)——视图(view)——控制器(controller)的缩写,是一种软件设计典范,提供了一种用业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构。

ASP.NET MVC是一种构建WEB应用程序的框架,它将一般的MVC模式应用于ASP.NET框架。ASP.NET MVC经历了5个主要版本的迭代,其中ASP.NET MVC4和MVC5是目前比较成熟的版本。

ASP.NET MVC4主要功能包括:

①ASP.NET Web API;

②增强了默认的项目模板;

③增加使用jQuery Mobile的手机项目模板;

④支持显示模式(Display Mode);

⑤支持异步控制器的任务

ASP.NET MVC5主要功能包括:

①单一的ASP.NET开发组件;

②提供了新的Web项目体验;

③ASP.NET Identity;

④BootStrap模板;

⑤特性路由;

⑥身份验证过滤器;

开发环境支持:

MVC5需要.NET4.5,VS2013以上版本

1.1.创建MVC Web应用程序

①新建项目

选择MVC如下图所示:

1.2.MVC项目文档的结构

App_Data:应用程序本地存储;

App_Start:应用程序配置逻辑文件;

RouteConfig.cs:配置MVC应用程序的系统路由路径;

Content:该文件夹被推荐用于存储静态内容文件类似CSS 和 (图片)Images;

1.3.MVC5 Controller对应View页面

Controllers控制器方法会返回一个页面视图,和Views中的html页面一一对应

注意:界面必须和Controller中方法名字一一对应,不然会报错;

1.4.创建Model模型并向View展示数据

①在Model层中创建对应的User类,并在Controller层中Index方法中引入UserList;

public class TestController : Controller{// GET: Testpublic ActionResult Index(){User user = new User();user.Name = "测试人员1";user.Age = 24;User user2 = new User();user2.Name = "测试人员2";user2.Age = 23;List<User> userList = new List<User>();userList.Add(user);userList.Add(user2);return View(userList);}}

②在Views层中对应Controller的方法视图下进行展示;

视图引入模型

@using 包文件

@model IEnumerable<类>

展现数据

<ul>

@foreach (类 a in Model)

{

<li>@a.Name</li>

}

</ul>

<!--视图引入模型-->
@using WebApplication01.Models;
@model IEnumerable<User>@{ViewBag.Title = "Index";
}<!--数据展示List集合-->
<ul>@foreach (User user in Model){<li>@user.Name</li><li>@user.Age</li>}
</ul>

1.5.创建数据库链接实现数据读取

①首先在App_Start文件下创建一个数据库连接类;

public class ConnData{public DataSet GetDataSet(){string myStr = "server=DESKTOP-3POL04N;database=stsc;UId=sa;password=123456";//获取链接字符串SqlConnection myConn = new SqlConnection(myStr);myConn.Open();//打开数据库string sqlStr = "select * from test01 ";//定义查询字符串SqlDataAdapter myDa = new SqlDataAdapter(sqlStr, myConn);//sql数据适配器DataSet myDs = new DataSet();//创建datasetmyDa.Fill(myDs);//SqlDataAdapter填充DataSetreturn myDs;}}

②在Controller层中处理更新路由Index中的逻辑;

public ActionResult Index(){//使用数据库查询封装UserConnData conn = new ConnData();DataSet dataSet = conn.GetDataSet();User user = new User();user.Name = dataSet.Tables[0].Rows[0][1].ToString();user.Age = int.Parse(dataSet.Tables[0].Rows[0][2].ToString());User user2 = new User();user2.Name = dataSet.Tables[0].Rows[1][1].ToString();user2.Age = int.Parse(dataSet.Tables[0].Rows[1][2].ToString());List<User> userList = new List<User>();userList.Add(user);userList.Add(user2);return View(userList);}

1.6.MVC5+小三层架构

小三层架构示意图:

①需要新增.NET FrameWork项目Model(模型层)、Bll(逻辑业务层)、Dal(数据操作层)

②增加Model、Dal、Bll中的逻辑代码;

Model

  public class UserModel{string name;public string Name{get { return name; }set { name = value; }}int age;public int Age{get { return age; }set { age = value; }}}

Bll层:

 public class UserBll{public List<UserModel> getUserData(){//使用数据库查询封装UserUserDal userDal = new UserDal();  //Dal数据链接层处理数据DataSet dataSet = userDal.GetDataSet();UserModel user = new UserModel();user.Name = dataSet.Tables[0].Rows[0][1].ToString();user.Age = int.Parse(dataSet.Tables[0].Rows[0][2].ToString());UserModel user2 = new UserModel();user2.Name = dataSet.Tables[0].Rows[1][1].ToString();user2.Age = int.Parse(dataSet.Tables[0].Rows[1][2].ToString());List<UserModel> userList = new List<UserModel>();userList.Add(user);userList.Add(user2);return userList;}}

Dal层:

  public class UserDal{public DataSet GetDataSet(){//有了数据链接层Conn,这里更改为如下操作:string sqlStr = "select * from test01 ";//定义查询字符串var DataTable = DbHelperSQL.ExecuteDataTable(sqlStr);DataSet myDs = new DataSet();//创建dataset
            myDs.Tables.Add(DataTable);return myDs;}}

注意:Bll业务层需要增加项目依赖项,如下图

③需要在WebApplication01项目中处理Controller层和View界面层;

Controller层:

View层:

展示数据:

1.7.MVC5+小三层架构+数据连接层

这里是在上面的基础上新增加了一个数据连接层Conn;封装数据库连接与增删改查操作

之后修改Dal数据操作层,使用Conn中的DbHelperSQL封装Sql类来执行查询,构造DataSet:

public class UserDal{public DataSet GetDataSet(){//有了数据链接层Conn,这里更改为如下操作:string sqlStr = "select * from test01 ";//定义查询字符串var DataTable = DbHelperSQL.ExecuteDataTable(sqlStr);DataSet myDs = new DataSet();//创建dataset
            myDs.Tables.Add(DataTable);return myDs;}}

1.8.MVC5+EF框架

①首先,需要自定义创建一个实体Model类UserInfoModels;

  public class UserInfoModels{public int id { get; set; }public string name { get; set; }public int age { get; set; }}

②在Controllers控制器上创建MVC5的EF框架控制器;

③同时修改Web.config中的数据库连接connectionString配置,关联本地的数据库:

其中Data Source=DESKTOP-3POL04N为本地数据库服务器名,Initial Catalog为需要生成的数据库名称。

<add name="UserInfoContext" connectionString="Data Source=DESKTOP-3POL04N; Initial Catalog=UserInfoDB; Integrated Security=True;"providerName="System.Data.SqlClient" />

④点击视图Views文件夹下面的自定义模型视图Index.cshtml启动,这时会自动由EF框架生成数据库表UserInfoDB与界面;

【.NET框架】—— ASP.NET MVC5 初识(一)相关推荐

  1. ASP.NET MVC5 网站开发实践(二) Member区域 - 用户部分(2)用户登录、注销

    上次实现了用户注册,这次来实现用户登录,用到IAuthenticationManager的SignOut.SignIn方法和基于声明的标识.最后修改用户注册代码实现注册成功后直接登录. 目录: ASP ...

  2. ASP.NET MVC5 与EF6学习系列

    最近学习使用MVC5和EF6,博客园搜索了一番,写下这篇文章记录,以便学习使用. 一.ASP.NET MVC5 网站开发 @洞庭夕照写的博客系列 ASP.NET MVC5 网站开发实践 - 概述 AS ...

  3. ASP.NET MVC5 网站开发实践 - 概述

    前段时间一直在用MVC4写个网站开发的demo,由于刚开始学所有的代码都写在一个项目中,越写越混乱,到后来有些代码自己都理不清了.1月26日晚上在群里跟@怒放 他们讨论这个问题,结论是即使只是一个小d ...

  4. ASP.NET MVC5 网站开发实践

    http://www.cnblogs.com/mzwhj/p/3537145.html 前段时间一直在用MVC4写个网站开发的demo,由于刚开始学所有的代码都写在一个项目中,越写越混乱,到后来有些代 ...

  5. 【.NET框架】—— ASP.NET MVC5路由基础(五)

    1.1.ASP.NET MVC5路由概念及设置 路由是实现资源交互访问的接口,路由匹配传入请求,并把这些请求映射到控制器操作,构造传出的URL,用来响应控制器操作. 路由的分类: 传统路由 特性路由 ...

  6. [Asp.net MVC]Asp.net MVC5系列——第一个项目

    目录 概述 创建第一个项目 添加控制器 总结 概述 本教程是个人一步一步学习的总结,希望能帮到正在进入ASP.Net MVC5方向的朋友,个人也是准备进入ASP.NET MVC5领域,虽然艰辛,但是乐 ...

  7. 一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](三)

    前言 上一篇<一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](二)>我们通过如下操作: 创建实体及工具类 创建Re ...

  8. ASP.NET MVC5 高级编程 第3章 视图

    参考资料<ASP.NET MVC5 高级编程>第5版 第3章 视图 3.1 视图的作用 视图的职责是向用户提供界面. 不像基于文件的框架,ASP.NET Web Forms 和PHP ,视 ...

  9. ASP.NET MVC5微信公众平台整合开发实战教程

    <ASP.NET MVC5&微信公众平台整合开发实战(响应式布局.JQuery Mobile,Windows Azure.微信核心开发)> 课程讲师:57Code 课程分类:ASP ...

最新文章

  1. 卡片右上角三角形效果,按钮点击变色
  2. 博士女友的朋友圈都藏着什么秘密?
  3. 武书连2019中国大学排行榜公布:浙大排名超越北大
  4. gis地图和普通地图的区别_GIS之如何添加WMTS地图
  5. 吴军信息论40讲_刘润对谈吴军:每个人都一定要有数学思维
  6. springboot快速入门【小白也能看懂】
  7. c语言爬楼梯不用递归,[leetcode]爬楼梯的递归和非递归方法
  8. linux系统pyodbc安装与使用教程
  9. grep指令与ps指令的详细使用说明
  10. 信息系统项目管理师(第1章)
  11. 面经手册 · 第12篇《面试官,ThreadLocal 你要这么问,我就挂了!》
  12. 下一代防火墙(NGFW)如何防御APT攻击?
  13. 如何将Mac设置为热点?
  14. MarkDown生成目录索引
  15. 工业革命的秋之涟漪(二):从飞桨,走向深度学习产业实践
  16. Flutter自定义背景色渐变 按钮 组件
  17. UGUI IPointerUpHandler事件失灵
  18. Linux的数字签名,Ubuntu系统下-加密和数字签名Email
  19. 用Windows电脑看txt小说,阅读器软件怎么选
  20. 无人机与视觉结合项目

热门文章

  1. Windows + Ubuntu 18.04 双系统安装教程
  2. 华彬集团董事长严彬助力精准扶贫
  3. 三星Galaxy S6国行配备高通最强芯片 将推曲屏版
  4. 南昌大学计算机专业分数线2019,南昌大学录取分数线2019(在各省市录取数据)...
  5. python樱花手绘_宫崎骏动画里的新垣结衣见过没?这个开源动漫生成器让你的照片秒变手绘日漫...
  6. Python实现最小二乘法拟合直线(求斜率截距)
  7. 代金券制作小程序秒代金券_免费的微信电子代金券制作(模板、设计)工具
  8. 网站服务器安全检查结果表,网站安全检测报告预测(2020年精华篇)
  9. foxmail密码忘记后的一种办法[备忘]
  10. putty乱码问题及解决