ASP.net 知识框架

2018-06-22 07:30:16来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

ASP.net

第一章:ASP.NET介绍

1.搭建ASP.NET开发环境;

2.理解ASP.NET运行机制;

3.掌握ASP.NET两种编码方式

4Http协议。

关键点:

1.BS的工作原理是什么?

 

 

2.服务器端开发技术有哪些?

Asp 、aspx、jsp、php

3.ASP.NET发展史。

 

4.ASP.NET的特色和优。

浏览器无关性、易于调试、运行效率高。 代码逻辑分明(页面显示.aspx文件,业务逻辑.cs文件)

 

注(msIL或IL是.net框架中间语言缩写)JIT(Just-in-time compiler)即时编译器

5.创建一个ASP.NET程序【创建网站、编写页面、调试运行】。

6.解决方案组成。

7.搭建开发环境[IIS]。

8.ASP.NET程序的发布。

9.asp.net运行机制。

 

10.ASP.NET页面的结构。

11.Page指令。   Page指令定义了页面用于编译和解析的属性 ,每个aspx页面只能有一个Page指令。

12.如何判断回发和首次加载。


13.ASP.NET页生命周期。
 Page_PreInit()  Page_Init() Page_Load()  Page_PreRender()   Page_Render() Page_Unload()

14.Web.Config配置文件的节点操作。


15.ADO.NET在ASP.NET中的使用。

第二章:页面访问控制

1.掌握RequestResponse对象的使用;

2.掌握Session对象的使用;

3.掌握Cookie对象的使用。

4.了解Application对象。

关键点:

1.HttpRequest对象封装客户端请求页面或提交表单时提供信息;

2.Request对象常用属性和方法

 

 

3.ReSponse对象常用属性和方法[ContentType、Write()、Redirect()、End()]。

 

4.状态管理【Cookie存储于客户端、Session存储于服务器、Application应用程序级别的状态保持】。

 

Cookie特征 :存储少量数据,存储在客户端,安全性差,只能存储字符串。

 

 

 

Session特点:

位置:保存在服务器端,安全性高;类型:任意;Session保存的信息不与其他用户共享;

在用户会话期间可以记录和监事用户信息;当会话过期或终止时服务器会清除Session对象。

 

 

Application

 

 

Application特点:位置:服务器内存,执行速度快;使用范围:整个应用程序;类型:任意;生命周期:从应用程序创建到销毁。

第三章:表单和数据验证

1.会使用控件完成页面表单设计。

2.掌握常用第三方控件的使用。

3.会使用Page对象注册脚本。

4.掌握验证控件的使用。

关键点:

  1. Web控件分类【HTML控件、HTML服务器控件、Web服务器控件、用户控件和自定义控件】。

 

  1. HTML控件和Web服务器控件的区别。

 

 

  1. 第三方控件【验证码控件】。

 

 

6.有效性验证控制【RequiredFieldValidator非空验证、CompareValidato用于比较控件的值、RangeValidator用于范围验证。RegularExpressionValidator正则表达式进行验证的控件、CustomValidator自定义验证、ValidationSummary验证报告控件】。

 

邮箱验证表达式:\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

 

第四章:搭建风格统一的Web站点

1.会使用母板页搭页面框架。

2.会使用导航控件完成导航功能。

3.能使用XML、手动编码添加节点来控制树形导航。

关键技术点:

1.母版页的特别及母版页的创建步骤。

2.获取母版页上控件的值【两种方式:通过设置属性、使用FindControl()方法】。

3.web.sitemap、SiteMapPath控件。

4.TreeView控件

第五章:系统架构搭建

1.理解三层架构在ASP.NET中的应用。

关键点:

1.三层架构中,各层的含议是什么?。【表示层、业务逻辑层、数据访问层】

2.ASP.NET搭建三层架构步骤。

3.三层架构的优势【适应变化、利于维护、适用于协作开、主流趋势】。

4.数据库中有主外键关系,模型层如何表示【两种方式:1.为实体添加外键ID;2.为实体添加对象属性。】

第六章:数据绑定与GridView

1.掌握数据绑定。

2.掌握DropDownList控件的使用。

3.掌握使用GridView控件完成数据的显示功能。

关键点:

1、数据源控件【SqlDataSource、AccessDataSource、XmlDataSource、SiteMapDataSource】

2.后台绑定数据源。

3.常用的数据绑定控件【DropDownList、GridView、DetailsView】。

4.DropDowList的常用属性和方法。

 

 

  1. GridView常用字段类型【BoundField、TemplateField(有五种模板:标头、脚注、普通项、交替项、编辑模式)、ButtonField 字段、CommandField字段、HyperLinkField字段、ImageField字段、CheckBoxField字段】。

 

 

 

 

 

 

光棒效果

 

多选效果

 

 

6.Eval()方法和Bind()方法的区别。7.Commandname设置自定义命令。

第七章:GridView深入

1.掌握获取GridView单元格数据。

2.掌握GridView基于单元格的更新。

3.掌握GridView常用事件处理。

4.掌握GridView中的数据删除。

关键点:

  1. 通过行、列获取单元格数据。

 

  1. GridView的两个重要属性

 

 

 

  1. 设置模板列。

 

  1. 添加命令按钮。

 

5.RowEditing事件【GridViewEditEventArgs对象属性NewEditIndex、Cancel】。

5.HiddenField控件。

 

 

 

  1. RowUpdating事件。

 

 

  1. RowCancelingEdit事件。

 

  1. CommandName属性【CommandArgument:引发事件源的命令参数、CommandName:引发事件源的命令名称。】,CommandName的值【Cancel、Delete、Edit、Selec、Update】。

 

 

 

单选删除

 

 

自定义删除

 

多选删除

 

 

备注,GridView实例大全

1. Gridview中无须编写后台代码,直接实现增除删改

 

2. Gridview中添加新记录

 

3:在Gridview中实现编辑和更新操作

 

4:在Gridview中实现一次性更新所有记录

 

 

5:在Gridview中固定表头的实现

 

6:在Gridview中合并单元格的实现

 

7:在Gridview中将数据操作结果显示在Footer

 

8:在Gridview中添加表头

 

9:在Gridview中将数据导出

 

10:在Gridview中实现数据导入

 

11:在Gridview中实现嵌套功能

 

12:在Gridview中实现多层嵌套

 

13:在Gridview中实现排序

 

14:在Gridview中实现分页

 

15Gridivew结合CheckBox控件的使用

 

16Gridview结合DropDownList控件的使用

 

17Gridview结合RadioButtom的使用

 

18Gridview内嵌DropDownList控件

 

19Gridview结合JS,在客户端结合CheckBox的使用

 

20:在Gridview中设置数据行的背景颜色

 

21:在Gridview中设置数据行的事件

 

22:在Gridview中设置数据行的其他属性

 

23:在Gridview中索引主键的使用

 

 

 

 

 

 

 

第八章:第三方控件的使用

1.掌握第三方控件FCKeditorJS版日历的使用。

2.掌握ASP.NET控件FileUpload的使用。

3.能编码实现详细信息页面的更新、插入操作。

4.掌握Server对象的常用方法。

关键点:

  1. FCKeditor的配置。

n 下载FCKeditor。要下载FCKeditor2.4.2.zip和FCKEditor.NET版本的2个zi包

说明:FCKeditor2.4.2.zip是其最新的JavaScript文件和图片。FCKeditory.NET.zip是ASP.NET调用的DLL在里面。

n 分别解压后把FCKeditory2.4.2.zip里面的fckeditor目录整个复制到项目中。

n 解压FCKeditor.NET.zip包后在FCKeditor.net_2.2\bin\Debug目录打到FredCK.FCKeditoryv2.dll。其它文件没用,把此dll文件复制到项目中的bin目录中。

n 引用FredCK.FCKeditorv2.dll.

第一步:

 

第二步:

 

n 导入到工具箱

在“工具箱”下右键

 

 

 

 

n 拖拽FCKeditor到页面上

 

n 配置WebConfig

 

说明:BasePath是fckeditor所在路径,fckeditor由于我们直接放网站目录下这样写就可以,如果您的网站多放几层适当调整即可。 UserFilesPath是所有上传的文件的所在目录。为什么要设置成/Files这样而不是~/Files,因为FCKeditor使用这个值来返回你上传后的文件的相对路径到客户端。否则的话客户访问的时候就会取客户的机器目录而不是http形式的目录。建议:Files要单独做wwwroot目录下的一个站点比较好,和我们的站点FCKEditor平行。不要把它放FCKEditor里,为什么呢?因为Files是要让客户有写的权限的,如果放FCKEditor下很危险。

n Files目录要有写的权限。你根据自己网站需求设置那个帐号,本文为方便设置User实际中你可能用ASP.NET帐号更合理。

 

n 修改fckeditor/fckconfig.js文件

 

n 下面以上传图片示例说明如何使用

 

点“浏览服务”

 

弹出窗口很容易报错

 

 

如果报错XML request error: Internal Server Error(500),很可能就是目录路径不对和写权限没有。

选择图像

 

最后效果

 

  1. Calendar日期控件常用属性和事件

 

  1. JS版日历。

l 下载最新的zip(My97DatePickerBeta.zip)

l 解压后放到网站里面。

 

 

l 在页面中引出js

 

l 效果如下

 

 

 

  1. FileUpload类的常用属性和方法。

 

 

  1. Server对象常用方法

 

 

 

 

 

第九章:DataListRepeater控件

1.掌握使用DataList控件显示数据。

2.ViewSate

3.会使用Repeater控件精确显示内容。

关键点:

 

  1. DataList模板

 

 

 

  1. DataList重要属性。

 

  1. DataList重要事件。

 

 

  1. ViewState页面级的状态保持。

 

 

 

  1. Repeater控件是一个容器控件、效率高,不会自动生成任何HTML代码。

 

 

 

第十章:web站点的配置与部署

1.能够使用Web.config存储数据库连接。

2.会使用站点管理工具设置站点配置。

3.能使用Visual Studio站点发布工具发布Web站点。

关键点:

1.ASP.NET的两种配置文件:maching.config、web.config。2.自写下义错误配置节点。3.调试和运行时的配置。4.身份验证和授权:身份验证方式:Windows、Passport、Form、None。5.授权:Allow允许;deny拒绝;特殊符号:“*”代表所有用户,“?”代表匿名用户。

第十一章:用户自定义控件

1.掌握用户控件的创建、使用。

2.掌握暴露用户控件的属性。

3.掌握自定义控件的概念。

4.了解服务器控件的生命周期人、呈现过程。

5.会从服务器控件控件派生自定义控件。

6.掌握在用户控件中使用的自定义事件。

7.掌握自定义控件呈现页面的方法。

8.掌握自定义控件呈现页面的方法。

9.理解控件的视图状态和控件状态。

关键点:

1.创建和使用用户控件的步聚。2.用户控件的关键代码@Control批指令。3.用户控件与页面的区别。4.什么是自定义控件【ASP.NET自定义控件(Custom Control)是编译的服务器端控件,它将用户界面和其它功能都封装到可复用的包中(dll),如验证码控件或FCKeditor】。5.事件的定义【定义事件消息、定义委托类型】。6.事件访问器。7.htmlTextWriter类。

第十二章:WebService

1.掌握Web Service的基本工作原理。

2.理解Web Service的优势。

3.掌握Web Service的开发和使用。

关键点:

1.web Service是可互操作的分布式应用程序。

2.web Service使用Http和XMl进行通信。

3.Web Service可以穿越防火墙,真正实现自由通信。

4.通过Soap实现异地调用。

5.webSerivce的开发步骤

创建Web Service

一、 打开vs2013,选择文件->新建->项目。

 

二、 选择【ASP.Net空web应用程序】,将其命名为自己想的工程。

 

三、 然后右键点击工程,添加->web服务。然后命名为自己想要的服务名称。

 

 

四、 在asmx文件中写出自己想要开放的WebService方法。

 

五、 方法写完后,右击项目->发布

 

选择【文件系统】发布,选择发布的物理地址,点击【发布】即可

 

在发布的物理地址中会有这几个文件。

 

打开IIS,右键点击网站->新建网站

 

选择网站名称 ,刚刚发布的物理地址,还有发布的IP和端口,先后点完成。

 

然后网站就完成了。

 

、发布WebService、调用WebService】

第十三章Asp.Net Http管道

第十四章:Ajax

1.什么是ajax

2.ajax的工作原理。

3.ajax包含的技术。

4.XMLHttpRequest对象。

关键点:

  1. XMLHttpRequest对象初始化。2.XMLHttpRequest对象属性和方法【onreadystatechange、readyState、responseText、responseXML、Status、StatusText、open()、send()】3.数据格式 XML、JSON、HTML

 

第十五章:MVC模式

1.准备工作

l 为什么要学习ASP.NET MVC?

l ASP.NET MVC学习路线:要有c#ADO.NEThtmljavascriptASP.Net WebForm的基础。项目中实际用三层架构、ORM等访问数据库,但是这次的重点不是这些,因此我们使用SQLHelper

l 讲课使用Chrome浏览器,不考虑浏览器兼容性问题。

l 使用Visual Studio 2013.Net 4.5MS SQLServer2005及以上版本。

 

2.课程安排

MVC设计模式

Razor引擎

控制器详解

校验

MVC下的Ajax

路由

过滤器

MVC高级

3.MVC模式简介

l MVC模式两种理解:一种是表现模式,另外一种是架构模式。它将应用程序分成三个主要组件即:视图(View)控件器(Controller)模型(Model)

l M: Model主要是存储或者是处理数据的组件,Model其实是实现业务逻辑层对实体类相应数据库操作,如CRUD(create/read/update/delete)。它包括数据、验证规则、数据访问和业务逻辑等应用程序信息。ViewModel:视图模型。V:View是用户接口层组件。主要是将Model中的数据展示给用户。ASPXASCX文件被用来处理视图的职责。C:Controller处理用户交互,从model中获取数据并将数据传给指定的View

4.MVC架构模式

 

 

 

5.ASP.Net的两种开发方式

l WebForm的开发方式

服务器端控件
一般处理程序+html静态页+Ajax
一般处理程序+html模板

l ASP.Net MVC的开发方式
2009年第一个开源项目版本发布
更加开发、更多的新特点、社区活跃
不会取代WebForm
底层跟WebForm都是一样的。管道上不同的处理而已

 

6WebForm  VS  MVC

 

 

 

7.WebForm请求模型

 

 

8.Asp.Net MVC请求

 

 

9.借用WebFrom理解MVC

l 新建WebFrom项目

l Label的例子:耦合在一块

l 在page类中添加一个List

l 在前台用for循环遍历显示list

l 分层思想

l WebFromCodebehind伪分离还是继承关系

l MVC 代码和页面彻底分离,控制器和视图都是分别单独的类型。耦合度最低

10.Asp.Net MVC第一个程序

l 新建一个MVC项目

l 认识Web项目中的Controller

l 认识Web项目中的View

l 认识Web项目中的Model

l 创建一个控制器HomeController,添加一个ShowDemo的方法,然后在方法中往视图传递一个字符串。在ShowDemo方法上创建视图,并在页面中展示字符串内容。

11.控制器的约定大于配置

l Controller放到controllers文件夹中,并且命名方式以Controller结尾。

l 每个Controller都对应View中的一个文件夹,文件夹的名称跟Controller名称相同。

l Controller中的方法名都对应一个View视图(非必须,但是建议这么做)而且View的名字跟Action的名字相同。

l 控制器必须是非静态类,并且要实现IController接口。

l Controller类型可以放到其他项目中。

12.视图的相关约定

l 所有的视图必须放到Views目录下。

l 不同控制器的视图用文件夹进行分割,每个控制器都对应一个视图目录。

l 一般视图名字跟控制器的Action相对应(非必须)。

l 多个控制器公共的视图到到Shared

13.ViewData传递数据载体

l ViewDataController的属性,此属性是继承ControllerBase而来。

l ViewPage下也有一个ViewData的一个属性。

l 控制器的Action方法执行完成后,返回ViewResult,然后MVC框架会执行ExcuteResult方法时,Controller中的ViewData数据传递给ViewPage类,其实就是把ControllerViewData赋值给ViewPage页面的ViewData属性。

14.用户案例

l 用户列表页面(创建数据、使用SqlHelper),加载用户列表数据到页面中。【三层、EntityFramework等不是本次课程的重点】

l 用户注册页面。(校验后面再补充)

l 目地:熟悉MVC开发的方式、MVC下的请求处理响应的模型

15.HtmlHelper详解

l 在ASP.Net MVC中微软并没有提供类似服务器端控件那种开发方式式,毕竟微软的MVC就是传统的请求处理响应的回归。所以之前的那种事件响应的模型,抛弃服务器端控件也理所当然。但是如果手写Html标签效率又比较低,可重用度比较低。

l 微软为开发人员快速开发前台页面提供了丰富的HtmlHelper的辅助类,辅助我们快速开发前台页面,也提供了可扩展的接口,前台页面的标签可以可以做到高度可重用。

l HtmlHelper还继承了Model元数据的校验、ViewDataViewBag数据绑定装配等自动化功能,也是非常实用的功能

l HtmlHelper还提供了强类型标标签更是在开发阶段就实现编译检测。提高了编码的效率。

l HtmlHelper还提供了模板编辑功能、页面嵌套等功能,后面一一介绍。

16.HtmlHelper的演变。

l 在MVC中所有的请求都归结到控制器下面的Action。所以所有的请求都是要指定一个具体的ActionUrl的格式是根据路由规则来定的。比如,默认路由规则中定义请求的地址的格式:{Controller}/{Action}/{id},则请求的url地址应该是:http://localhost/Home/Index/1

l 我们可以看到请求的地址不再跟WebForm中的请求地址就是页面的相对路径。而在MVC中请求的地址是一个逻辑地址,而不是物理的路径

l 在页面中添加超级链接的时候href属性就有了变化性。也就是当路由规则发生变化的时候,href属性也必须跟着变化。

l 屏蔽路由规则的变化对a标签等产生的影响,MVC给我们提供了Url.Action()方法。但是依然非常笨重。

l 最完美的解决办法就是:HtmlHelper.Action()

17.HtmlHelper各种方法介绍

l ActionLink

 

生成结果:

             

 

l RouteLink

 

生成结果:

 

l Form

 

l TextBox,Hidden

 

l TextArea

 

l CheckBox

 

l DropDownList

  dropDownListTextBox等控件不同,它使用的是select标记。它需要两个值:在下拉列表框中现实的列表,和默认选项。而自动绑定一次只能绑定一个属性,因此您需要根据要选择是绑定列表,还是默认选项。

DropDownList扩展方法的各个重载版本“基本上”都会传递到这个方法上:

 

如果没有指定selectList,改方法将自动绑定列表,即从ViewData中查找name所对应的值。如果提供了selectlist,将自动绑定默认选项,即从selectList中找到Selected属性为trueselectedListItem

1:如果在Action方法中有如下代码:

 

那么辅助方法将率先从ViewData中获取keylist的项,如果该项为IEnumerable<SelectedListIItem>类型则绑定到下拉列表框中,否则将抛出InvalidOperationException。异常,由于第二个SelectListItemSelectedtrue,则默认选中第二个。

2:如果Action中代码如下:

 

那么辅助方法将ViewData[“list”]绑定为下拉框,然后从ViewData中获取keyselected的项,并将下拉listValue值与该项的值相等的SelectListItem设为默认选中项。

以上两种方法尽管可以实现DropDownList的正确显示,但是并非最佳实践。在实际项目中,我们更希望在代码中使用强类型,例如上面例子中,SelectListItemTextValue本来就是User对象的NameAge属性,然而上面的代码却丝毫体现不出这种对应关系。如果User列表是从数据库或其他外部资源中获得的,我们难道还要用这种方式来绑定吗?

 

 

这显然是我们所无法容忍的。那么什么是最佳实践呢?

ASP.NET MVCDropDownListListBox(都在html中使用select标记)准备了一个辅助类型:SelectListSelectList继承自MultiSelectList,而后者实现了IEnumerable<SelectListItem>。也就是说,SelectList可以直接作为Html.DropDownList方法的第二个参数。

MultiSelectList包含四个属性,分别为:

  • Items:用于在select标记中出现的列表,通常使用option标记表示。IEnumerable类型。
  • DataTextField:作为optiontext项,string类型。
  • DataValueField:作为optionvalue项,string类型。
  • SelectedValues:选中项的value值,IEnumerable类型。

显然,作为DropDownList来说,选中项不可能为IEnumerable,因此SelectList提供了一个新的属性:

 

  • SelectedValue:选中项的value值,object类型。

同时,SelectList的构造函数如下所示:

 

  于是我们的代码变为:

 

20.Html.Encode

 

21.HtmlHelper扩展

l 扩展方法的三个要素:静态类、静态方法、this关键字

l 案例:扩展自定义标签

l 解决返回的标签被HtmlEncode的问题

 

 

22.案例:用户删除和修改

l 实现用户的删除

l 在列表页面添加一个修改列

l 实现点击修改链接页面跳转的修改详情页面

l 实现修改页面逻辑

l 体会双向数据装配:控制器的Action在执行之前会自动把请求中数据装配到Action的方法参数里面去或者是参数的属性里面去。控制器往视图传递的数据会自动装配到页面的HtmlHelper生成的控制上去。

23.双向数据的装配

l 控制通过ViewData容器把数据传递到View之后,View在渲染Html标签的时候会自动从ViewData中获取数据进行填充标签。

l 表单提交到控制器的时候,执行控制器的Action之前会自动将表单中的内容填充到方法的参数或者参数的属性面去。

l 案例:用户注册

24.Razor引擎简介

l 在MVC3.0版本的时候,微软终于引入了第二种模板引擎:RazorRazor在减少代码冗余、增加代码可读性和vs智能感知方面,都有着突出的优势。Razor一经推出就深受所有Asp.Net开发者的喜爱。

 

25.Razor引擎语法

l Razor文件类型:Razor支持两种文件类型,分别是.cshtml.vbhtml,其中.csHtml的服务器代码使用了C#的语法,.vbhtml的服务器代码使用了vb.net的语法。

l @字符是Razor中的一个重要符号,它被定义为Razor服务器代码块的开始符号

l 案例:在页面中输出当前日期

<span>@DataTime.Now.Tostring(“yyyy-MM-hh”)</span>

26. Razor语句块

l 可以使用@{code}来定义一段代码块。

l RaZor支持代码混写。在代码块中插入Html、在Html中插入Razor语句都是可以的。

l 案例:For循环嵌套输出html标签

 

 

 

27.Razor页面上输出特殊字符串

l 输出原生的字符串:@Html.Raw(html)

l 例如:@Html.Raw(“<h2>Razor</h2>”)

l HtmlString类型和MvcHtmlString类型字符串输出

l 例如:IHtmlString html=new HtmlString("<font color='red'>文本</font>");

 

28.Razor引擎的注释

l C#代码块可以C#自带的注释符合:// /**/

l Razor服务器端注释为:@*  注释内容  *@

29.Razor引擎的转换数据类型

 

 

30. CKEditorasp.net mvc中的使用:

l 下载CKEditor     http://ckeditor.com/download

l 把解压后的目录拷贝到Content目录中。

 

l ckEditorasp.net mvc中的使用就相当简单了,只需要在脚本中执行CKEDITOR.replace(id);id 为你需要拥有编辑功能的textareaid

View:

 

 

Controller:

 

这里要注意[ValidateInput(false)]特性,它的目的是防止在提交时报“检测到有潜在危险的客户端输入值”。

l 运行后的效果图如下:

 

31.控制器详解

l 控制器的约定:必须实现IController接口、必须以Controller为结尾、必须非静态类。

l 在Action中可以访问HttpContext中所有的相关数据:比如SessionCookie、也可以设置响应总之跟WebFormPage类能做的,在Action中都能做。

l 控制器的Action的各种返回值。

 

 

 

 

 

 

32.深入讲解Controller

l 职责 :Controller负责将获取Model数据并将Model传递给View对象,通知View对象显示。

l 一个Controller可以包含多个Action。每一个Action都是一个方法,返回一个ActionResult实例。

l 一个Controller对应一个XXController.cs控制文件,对应在View中有一个XX文件夹。一般情况一个Action对应一个Aspx页面。

33.深入讲解Routing

l 在项目中我们引用了System.web.Routing

l 微软将此项目单独出来,并没有开源代码。

l Routing的作用:确定Controller 、确定Action 、确定其他参数、根据识别出来的数据,将请求传递给ControllerAction

l MVC项目是URL请求驱动。

l 为什么访问localhost/Home/Index会传递给HomeController中名为indexaction(即HomeController类中的index方法)?怎么实现的呢?

l Global.asax.cs文件中定义了路由的识别规则

 

l 我们的URLlocalhost/home/index

l Localhost是域名,所以首先要去掉域名部分:home/index

l 对应了上面代码中的这种URL结构:{controller}/{action}/{id}

l 因为我们建立了这种URl结构的识别规则,所以能够识别出ControllerhomeactionindexId没有则为默认值””。

MapRoute()方法

 

l MapRout参数介绍

 Name参数:规则名称,可以随意起名,不可以重名,否则会发生错误:路集合中已经存在名为“Default”的路由。路由名必须是唯一的。

url参数:url获取数据的规则,这里不是正则表达式,将要识别的参数括起来即可,比如:{controller}/{action}。最少只需要传递nameurl参数就可以建立一条Routing(路由)规则。比如实例中的规则完全可以改为:routes.MapRoute(“Default”,”{controller}/{action}”)

defaults参数:

url参数的默认值.如果一个url只有controller: localhost/home/

而且我们只建立了一条url获取数据规则: {controller}/{action}

那么这时就会为action参数设置defaults参数中规定的默认值. defaults参数是Object类型,所以可以传递一个匿名类型来初始化默认值:

new { controller = "Home", action = "Index" } 实例中使用的是三个参数的MapRoute方法:

routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = "" } // Parameter defaults );

constraints参数:

用来限定每个参数的规则或Http请求的类型.constraints属性是一个RouteValueDictionary对象,也就是一个字典表, 但是这个字典表的值可以有两种:

用于定义正则表达式的字符串。正则表达式不区分大小写。

一个用于实现 IRouteConstraint 接口且包含 Match 方法的对象。 

通过使用正则表达式可以规定参数格式,比如controller参数只能为4位数字:

new { controller = @"\d{4}"}

l 通过第IRouteConstraint 接口目前可以限制请求的类型.因为System.Web.Routing中提供了HttpMethodConstraint类, 这个类实现了IRouteConstraint 接口. 我们可以通过为RouteValueDictionary字典对象添加键为"httpMethod", 值为一个HttpMethodConstraint对象来为路由规则添加HTTP 谓词的限制, 比如限制一条路由规则只能处理GET请求:

l httpMethod = new HttpMethodConstraint( "GET", "POST" )

完整的代码如下:

l routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = "" }, // Parameter defaults new { controller = @"\d{4}" , httpMethod = new HttpMethodConstraint( "GET", "POST" ) } );

 

l URL路由实例讲解

对于一个网站,为了SEO 友好,一个网址的URL层次不要超过三层:

Localhost/{频道}/{具体网页}

其中域名第一层,频道第二层,那么最后的网页就只剩下最后一层了。如果使用默认实例中的”{controller}/{action}-{其它参数}”的形式会影响网站的SEO

l URL路由实例讲解。

  源码在RouteConfig.cs

l Url实例总结

实现的功能:

(1) 访问localhost/hotels/list-beijing-100,200-3会访问酒店频道的列表页,并传入查询参数。

(2) 访问localhost/hotels下面的任何其他页面地址,都会跳转到酒店首页。

(3) 访问localhost下面的任何地址,如果未匹配上面2条,则跳转到首页。

  简单总结:

(1) Routing规则是有顺序(按照添加是的顺序),如果一个URL匹配了多个Routing规则,则按照 第一个匹配的Routig规则执行。

(2) 由于上面的规则,要将具体频道的具体页面放在最上方,将频道首页和网站首页放在最下主。

(3) {*values}表示后面可以任意的格式。

34.关于测试Routing

l 使用RouteDebug辅助类

l 在Global.asax添加如下代码:

Protected void Application_Start()

{

RegisterRoutes(RouteTable.Routes);

RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);

}

35.MVC验证

l .NET框架中的System.ComponentModel.DataAnnotations命名空间包括了众多可为您所用的内置验证特性,介绍用最多的其中的四个:

[Required][StringLength][Range][RegularExpression]

l 定义自己的定制验证特性,然后应用它们。你可以通过继承自System.ComponentModel.DataAnnotations命名空间中的ValidationAttribute基类,定义完全定制的特性。

l 服务器端校验只需要在Action中校验:ModelState.isValid属性即可。True就是校验通过,false反之不通过

l 要使用客户端验证,必须引入JS脚本支持(jquery的校验)

l 添加语句

<%Html.EnableClientValidation();%>(MVC34中默认开启)

l WebConfig中可以设置全局客气端校验是否开启或关闭

36.ASPNet MVC 下的Ajax

l 使用Jquery做相关的Ajax请求

 

 

l 使用微软提供的Ajax请求脚本。

 

 

 

 

 

37.过虑器详解

l 项目大一点总会有相关的AOP面向切面的组件,而MVC(特指:ASP.Net MVC,以下皆同)项目中呢Action在执行前或者执行后我们想做一些特殊的操作(比如身份验证,日志,异常,行为截取等),而不想让MVC开发人员去关心和写这部分重复的代码那我们可以通过AOP截取实现,而在MVC项目中我们就可以直接使用它提供的Filter的特性帮我们解决,不用自己实现复杂的AOp了。

 

 

l ActionFilterAttribute默认实现了IActionFilterIResultFilter。而ActionFilterAttribute是一个Abstract类型,所以不能直接使用,因为它不能实例化,所以我们想使用它必须继承一下它然后才能使用

l 案例:Action过滤

 

 

 

 

 

l AttributeUsage特性用于设置标签

l Gloable Filter允许我们设置全局过滤器。

 

 

 

l 异常过滤器:当我们Mvc站点出现了异常的时候会自动执行异常过滤器里面的方法。

 

 

 

 

 

 

38.区域详解

l Asp.Net MVC 提供了区域的功能,可以很方便的为大型的网站划分区域。

l 可以让我们的项目不至于太复杂而导致管理混乱,有了区域后,每个模块的页面都放入相应的区域内进行管理很方便。

l 在项目上右击创建新的区域。

l 区域的功能类似一个小的MVC项目,麻雀虽小五脏俱全,有自己的控制器、模型、视图、路由设置。

l 区域的路由设置是优先的。

39.页面渲染

l 传统的页面嵌套都是采用iframe方式,这样不利于SEO的优化,一般蜘蛛碰到Iframe是不进行抓取的,webForm中,采用的是用户控制的方式,MVC 中采取页面渲染

 

 

 

 

 

 

40.模板页

l 模板页必须放到共享的文件夹中。

l WebForm视图引擎的模板页跟之前的没有什么区别,也就是采用母板页。

l Razor引擎引入渲染区域的概念。

l 所有页面启动的时候ViewStart文件夹先执行。

l RanderBodyRenderSection

l 实例

(一) 在Shared文件夹中创建_Layout3.cshtml

 

   ()创建一个页面使用次模板

      

 

补充:Json

 JSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式。XML也是一种数据交换格式,为什么没有选择XML呢?因为XML虽然可以作为跨平台的数据交换格式,但是在JS(JavaScript的简写)中处理XML非常不方便,同时XML标记比数据多,增加了交换产生的流量,而JSON没有附加的任何标记,在JS中可作为对象处理,所以我们更倾向于选择JSON来交换数据。这篇文章主要从以下几个方面来说明JSON

  1. Javascrip定义Json以及解析Json

 

  1. 通过序列化,把.net中的对象转换成JSon

 

补充:正则表达式


正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”)。模式描述在搜索文本时要匹配的一个或多个字符串。

 

l C#常用的正则表达式

 

 

 

l Js常用的表达 式。

 

 

 

第十六章En

 

 

Jquery

第一章认识jQuery

第二章jQuery选择器

 

1.  基本选择器

2.  层次选择器

3.  过滤选择器

4.  表单选择器

第三章jQuery中的DOM操作

1.查找节点

2.创建节点

3.插入节点

4.删除节点

5.复制节点

6.替换节点

7.包裹节点

8.属性操作

9.样式操作

10.设置和获取HTML、文本和值

11.遍历节点树

12.CSS-DOM操作

第四章jQuery对表单、表格的操作及更多应用

1.表单应用

2.单行文本框应用

3.多行文本框应用

4.复选框应用

5.下拉框应用

6.表单验证

7.表格应用

8.表格变色

9.表格展开关闭

10.表格内容筛选

 

第五章jQueryAjax的应用

1Ajax的优势和不足

2.Ajax的优势

3.Ajax的不足

4.AjaxXMLHttpRequest对象

5. jQuery中的Ajax 106

6. load()方法 106

7. $.get()$.post()方法

8.  $.getScript()$.getJson()

9. $.ajax()方法 120

10.序列化元素 123

11. jQuery中的Ajax全局事件

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:.Net Core 真能令微软的.Net 跨平台“蔓延”?

下一篇:初探asp.net异步编程之await