【.NET框架】—— ASP.NET MVC5 初识(一)
章节一 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 初识(一)相关推荐
- ASP.NET MVC5 网站开发实践(二) Member区域 - 用户部分(2)用户登录、注销
上次实现了用户注册,这次来实现用户登录,用到IAuthenticationManager的SignOut.SignIn方法和基于声明的标识.最后修改用户注册代码实现注册成功后直接登录. 目录: ASP ...
- ASP.NET MVC5 与EF6学习系列
最近学习使用MVC5和EF6,博客园搜索了一番,写下这篇文章记录,以便学习使用. 一.ASP.NET MVC5 网站开发 @洞庭夕照写的博客系列 ASP.NET MVC5 网站开发实践 - 概述 AS ...
- ASP.NET MVC5 网站开发实践 - 概述
前段时间一直在用MVC4写个网站开发的demo,由于刚开始学所有的代码都写在一个项目中,越写越混乱,到后来有些代码自己都理不清了.1月26日晚上在群里跟@怒放 他们讨论这个问题,结论是即使只是一个小d ...
- ASP.NET MVC5 网站开发实践
http://www.cnblogs.com/mzwhj/p/3537145.html 前段时间一直在用MVC4写个网站开发的demo,由于刚开始学所有的代码都写在一个项目中,越写越混乱,到后来有些代 ...
- 【.NET框架】—— ASP.NET MVC5路由基础(五)
1.1.ASP.NET MVC5路由概念及设置 路由是实现资源交互访问的接口,路由匹配传入请求,并把这些请求映射到控制器操作,构造传出的URL,用来响应控制器操作. 路由的分类: 传统路由 特性路由 ...
- [Asp.net MVC]Asp.net MVC5系列——第一个项目
目录 概述 创建第一个项目 添加控制器 总结 概述 本教程是个人一步一步学习的总结,希望能帮到正在进入ASP.Net MVC5方向的朋友,个人也是准备进入ASP.NET MVC5领域,虽然艰辛,但是乐 ...
- 一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](三)
前言 上一篇<一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](二)>我们通过如下操作: 创建实体及工具类 创建Re ...
- ASP.NET MVC5 高级编程 第3章 视图
参考资料<ASP.NET MVC5 高级编程>第5版 第3章 视图 3.1 视图的作用 视图的职责是向用户提供界面. 不像基于文件的框架,ASP.NET Web Forms 和PHP ,视 ...
- ASP.NET MVC5微信公众平台整合开发实战教程
<ASP.NET MVC5&微信公众平台整合开发实战(响应式布局.JQuery Mobile,Windows Azure.微信核心开发)> 课程讲师:57Code 课程分类:ASP ...
最新文章
- 卡片右上角三角形效果,按钮点击变色
- 博士女友的朋友圈都藏着什么秘密?
- 武书连2019中国大学排行榜公布:浙大排名超越北大
- gis地图和普通地图的区别_GIS之如何添加WMTS地图
- 吴军信息论40讲_刘润对谈吴军:每个人都一定要有数学思维
- springboot快速入门【小白也能看懂】
- c语言爬楼梯不用递归,[leetcode]爬楼梯的递归和非递归方法
- linux系统pyodbc安装与使用教程
- grep指令与ps指令的详细使用说明
- 信息系统项目管理师(第1章)
- 面经手册 · 第12篇《面试官,ThreadLocal 你要这么问,我就挂了!》
- 下一代防火墙(NGFW)如何防御APT攻击?
- 如何将Mac设置为热点?
- MarkDown生成目录索引
- 工业革命的秋之涟漪(二):从飞桨,走向深度学习产业实践
- Flutter自定义背景色渐变 按钮 组件
- UGUI IPointerUpHandler事件失灵
- Linux的数字签名,Ubuntu系统下-加密和数字签名Email
- 用Windows电脑看txt小说,阅读器软件怎么选
- 无人机与视觉结合项目
热门文章
- Windows + Ubuntu 18.04 双系统安装教程
- 华彬集团董事长严彬助力精准扶贫
- 三星Galaxy S6国行配备高通最强芯片 将推曲屏版
- 南昌大学计算机专业分数线2019,南昌大学录取分数线2019(在各省市录取数据)...
- python樱花手绘_宫崎骏动画里的新垣结衣见过没?这个开源动漫生成器让你的照片秒变手绘日漫...
- Python实现最小二乘法拟合直线(求斜率截距)
- 代金券制作小程序秒代金券_免费的微信电子代金券制作(模板、设计)工具
- 网站服务器安全检查结果表,网站安全检测报告预测(2020年精华篇)
- foxmail密码忘记后的一种办法[备忘]
- putty乱码问题及解决