课程7+上课日志1+

上传人: y****g 文档编号:131872966 上传时间:2020-05-10 格式:DOC 页数:13 大小:427KB
返回 下载 相关 举报
课程7+上课日志1+_第1页
第1页 / 共13页
课程7+上课日志1+_第2页
第2页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《课程7+上课日志1+》由会员分享,可在线阅读,更多相关《课程7+上课日志1+(13页珍藏版)》请在金锄头文库上搜索。

1、课程7 MVC框架更快更简单地开发网站上课日志1一、MVC相关知识简介1、MVC简介ASP.NET两种主流web开发方式是ASP.NET WebForms和ASP.NET MVC,目前更流行的是MVC方式。MVC版本4.0、5.0、6.0(移除了Web Form,进一步增强前端:内置了Node.js、bootstrap等,支持Node.js、Python开发,支持Android和iOS开发),.NET Core2.0(跨平台)Node.js 就是运行在服务端的 JavaScriptbootstrap是目前比较受欢迎的前端框架。Bootstrap 是基于 HTML、CSS、JAVASCRIPT

2、的,它简洁灵活,使得 Web 开发更加快捷。MVC是软件开发时使用的一种框架,是web应用程序的一种开发方式,它将Web应用程序的开发过程大致分割成3个主要单元,即模型(Model)、视图(View)、控制器(Controller),它们的功能分别如下:M:Model是存储或处理数据的组件,主要用于实现业务逻辑层对实体类相应数据库进行操作(用于存储应用程序的核心类)。V:View是用户接口层组件,主要用于用户界面的呈现,包括输入和输出C:Controller是处理用户交互的组件,主要负责转发请求。接收用户请求,对请求进行处理(调用业务逻辑层),并将数据从Model中获取并传给指定的View。(

3、用于存储所有控制器类,控制器负责处理请求)ASP.NET MVC特点/优点:更加简洁,更加接近原始的“请求处理响应”MVC只是表示层的一种方式松耦合、易于扩展和维护更适合于大型项目和团队开发(有利于分工合作)2、MVC请求过程当用户在客户端界面发送一个Request请求后,请求会被传递给Routing路由并对请求的URL进行解析,然后找到对应的Controller中的Action方法并执行该Action方法中的代码。Action方法执行完毕后将ViewResult视图结果返回给视图引擎处理,最后生成Response响应报文返回给客户端浏览器。Action就是一个方法,该方法用于处理请求并返回请

4、求响应结果,该方法的返回值为ActionResult类型。(控制器下的所有方法都称之为Action)3、Routing介绍Routing是指用于识别URL的规则,当客户端发送请求时根据该规则来识别请求的数据,将请求传递给对应的Controller的Action方法执行。RouteConfig.cs routes.MapRoute( name: Default, url: controller/action/id, defaults: new controller = AdminLogin, action = Login, id = UrlParameter.Optional );Routes的

5、MapRoute()方法定义路由规则。其中name表示规则名称并且该值必须唯一,url表示获取数据的规则,如请求的url是localhost/home/index,则home/index对应了上述代码中的controller/action/id结构,所以识别出controller是home,action是index,id则为默认的空字符串。用MVC来实现一个用户登录功能,简称实例7-1二、为实例7-1创建MVC项目结构及添加ADO.NET实体数据模型1、创建MVC项目结构新建ASP.NET MVC 4 Web 应用程序,选择模板为空,视图引擎选择【Razor】(另外一种是Aspx,两种视图语法

6、格式有点不同,Razor更流行)。App_Data:用来存储数据库文件,xml文件或者应用程序需要的一些其他数据文件。Global.asax:代码中包含应用程序第一次启动时的初始化操作,诸如路由注册。2、添加ADO.NET实体数据模型在Models文件夹右击添加新项数据【ADO.NET实体数据模型】【从数据库生成】【新建连接】设置连接数据库属性勾选是,在字符串中包含敏感数据【勾选相应的表】单击【完成】,在Models文件夹下生成一个扩展名为edmx的文件(Model1.edmx)。三、核心文件Model1.edmx的理解(EF、ORM)(1)生成了表实体类AdminLogin.cs(2)生成了

7、上下文类(存放于Model1.Context.cs中)“上知天文下知地理“,它能”通“表实体类与数据库表的变化,也即上下文对象能追踪表实体的变化。(实际上这是Entity Framework(实体框架EF)的运用,属于对象关系对应解决方案,简称ORM。(3)ORM思想表实体和表的相互转化。实际上:1)把实体的变化转到数据库里面去2)把表数据转换成实体EF是实现ORM思想的一种框架。(4)EF原理通过XML(文本)编辑器打开Model1.edmx文件(实体数据模型EDM),如下图所示:主要有以下3节构成:定义存储模型定义概念模型定义存储模型与概念模型之间的映射四、为实例7-1添加控制器及视图1、

8、添加AdminLogin控制器在Controllers文件夹右击添加控制器控制器名称输入AdminLoginController(只要输入前面的AdminLogin),在模板下选择【空MVC控制器】即可。在控制器下添加一个名为Login的Action方法。HttpGet/表示只用于处理Get方式的请求 public ActionResult Login() /返回一个视图 return View(); 上述代码实现了当用户发送一个登录请求时返回一个登录的视图View。其中,名称为“Login”的Action方法上的“HttpGet”标签表示该方法只用于处理且优先处理Get方式的请求,而“ret

9、urn view”表示返回一个登录视图,返回值类型为ActionResult。提示:上述描述“只处理并优先处理Get方式的请求”表示当有两个同名的Action方法时,如果一个Action上加了HttpGet标识而另一个没有加,此时若有一个Get请求发送过来,则交给了HttpGet标识的Action处理了;如果有一个Post请求发送过来,则交给未加标识的Action处理。2、添加Login视图右击Action所在的方法添加视图(默认视图名称与对应的Action方法名称相同,不勾选使用布局或母版页)。单击添加按钮之后,就会在View/AdminLogin文件夹下生成一个“Login.cshtml”

10、视图文件。MVC中约定大于配置思想对于控制器的约定:(1)Controller放到Controllers文件夹中,并且命名方式以Controller结尾(2)每个Controller对应View中的一个文件夹,文件夹的名称跟Controller名相同。Controller中的方法名都对应一个View视图(非必须,但是建议这么做),而且View的名称跟Action的名字相同(3)控制器必须是非晶态类,并且继承Controller类视图的相关约定(1)所有的视图必须放到Views文件夹下(2)不同控制器的视图用文件夹进行分割,每个控制器都对应一个视图目录(3)一般视图名字跟控制器的Action名相

11、对应(非必须)(4)多个控制器公共的视图放到Shared目录中Form表单的action属性值表示请求提交到AdminLogin控制器中名称为Login的Action方法。method=post表示请求方式为post,即会请求到不带HttpGet标识的Login方法。五、后台控制器里如何获取前台View中的数据public class AdminLoginController : Controller第1种方法:使用Request获取,RequestAdminName AdminName为控件的Name #region 后台获取前台View中数据的方法1 /public ActionResul

12、t Login(string s)/string s为群众演员(只能是引用类型参数),目的区别与上面的Login方法 / /string username=RequestAdminName; /string pwd = RequestPwd; /return Content(用户名:+username+,密码:+pwd); / #endregion第2种方法:在方法名后增加FormCollection collection 类型参数,然后通过collection“与前台Name属性一致” #region 后台获取前台View中数据的方法2 /public ActionResult Login(

13、FormCollection collection) / / string username = collectionAdminName; / string pwd = collectionPwd; / return Content(用户名: + username + ,密码: + pwd); / #endregion第3种方法:直接在方法名后添加相应参数,注意参数名与前台input控件的名一致,这样相应参数就能得到相应input控件的值 #region 后台获取前台View中数据的方法3 /public ActionResult Login(string AdminName,string Pwd) / / return Content(用户名: + AdminName + ,密码: + Pwd); / #endregion第4种方法:建立一个类,类中添加两个属性,属性名与前台相应的input控件名一致,然后在控制器的Action中增加该类的一个对象作为参数,最后就可以通过该对象.属性

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > .NET

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号