ASP.net 知识框架
2018-06-22 07:30:16来源:未知 阅读 ()
ASP.net
第一章:ASP.NET介绍
1.搭建ASP.NET开发环境;
2.理解ASP.NET运行机制;
3.掌握ASP.NET两种编码方式。
4.Http协议。
关键点:
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.掌握Request和Response对象的使用;
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.掌握验证控件的使用。
关键点:
- Web控件分类【HTML控件、HTML服务器控件、Web服务器控件、用户控件和自定义控件】。
- HTML控件和Web服务器控件的区别。
- 第三方控件【验证码控件】。
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的常用属性和方法。
- GridView常用字段类型【BoundField、TemplateField(有五种模板:标头、脚注、普通项、交替项、编辑模式)、ButtonField 字段、CommandField字段、HyperLinkField字段、ImageField字段、CheckBoxField字段】。
光棒效果
多选效果
6.Eval()方法和Bind()方法的区别。7.Commandname设置自定义命令。
第七章:GridView深入
1.掌握获取GridView单元格数据。
2.掌握GridView基于单元格的更新。
3.掌握GridView常用事件处理。
4.掌握GridView中的数据删除。
关键点:
- 通过行、列获取单元格数据。
- GridView的两个重要属性
- 设置模板列。
- 添加命令按钮。
5.RowEditing事件【GridViewEditEventArgs对象属性NewEditIndex、Cancel】。
5.HiddenField控件。
- RowUpdating事件。
- RowCancelingEdit事件。
- 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中实现分页
15:Gridivew结合CheckBox控件的使用
16:Gridview结合DropDownList控件的使用
17:Gridview结合RadioButtom的使用
18:Gridview内嵌DropDownList控件
19:Gridview结合JS,在客户端结合CheckBox的使用
20:在Gridview中设置数据行的背景颜色
21:在Gridview中设置数据行的事件
22:在Gridview中设置数据行的其他属性
23:在Gridview中索引主键的使用
第八章:第三方控件的使用
1.掌握第三方控件FCKeditor、JS版日历的使用。
2.掌握ASP.NET控件FileUpload的使用。
3.能编码实现详细信息页面的更新、插入操作。
4.掌握Server对象的常用方法。
关键点:
- 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),很可能就是目录路径不对和写权限没有。
选择图像
最后效果
- Calendar日期控件常用属性和事件
- JS版日历。
l 下载最新的zip(My97DatePickerBeta.zip)
l 解压后放到网站里面。
l 在页面中引出js
l 效果如下
- FileUpload类的常用属性和方法。
- Server对象常用方法
第九章:DataList与Repeater控件
1.掌握使用DataList控件显示数据。
2.ViewSate。
3.会使用Repeater控件精确显示内容。
关键点:
- DataList模板
- DataList重要属性。
- DataList重要事件。
- ViewState页面级的状态保持。
- 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对象。
关键点:
- 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.NET、html、javascript、ASP.Net WebForm的基础。项目中实际用三层架构、ORM等访问数据库,但是这次的重点不是这些,因此我们使用SQLHelper。
l 讲课使用Chrome浏览器,不考虑浏览器兼容性问题。
l 使用Visual Studio 2013、.Net 4.5、 MS SQLServer2005及以上版本。
2.课程安排
l MVC设计模式
l Razor引擎
l 控制器详解
l 校验
l MVC下的Ajax
l 路由
l 过滤器
l MVC高级
3.MVC模式简介
l MVC模式两种理解:一种是表现模式,另外一种是架构模式。它将应用程序分成三个主要组件即:视图(View)控件器(Controller)模型(Model)
l M: Model主要是存储或者是处理数据的组件,Model其实是实现业务逻辑层对实体类相应数据库操作,如CRUD(create/read/update/delete)。它包括数据、验证规则、数据访问和业务逻辑等应用程序信息。ViewModel:视图模型。V:View是用户接口层组件。主要是将Model中的数据展示给用户。ASPX和ASCX文件被用来处理视图的职责。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 ViewData是Controller的属性,此属性是继承ControllerBase而来。
l ViewPage下也有一个ViewData的一个属性。
l 控制器的Action方法执行完成后,返回ViewResult,然后MVC框架会执行ExcuteResult方法时,Controller中的ViewData数据传递给ViewPage类,其实就是把Controller的ViewData赋值给ViewPage页面的ViewData属性。
14.用户案例
l 用户列表页面(创建数据、使用SqlHelper),加载用户列表数据到页面中。【三层、EntityFramework等不是本次课程的重点】
l 用户注册页面。(校验后面再补充)
l 目地:熟悉MVC开发的方式、MVC下的请求处理响应的模型
15.HtmlHelper详解
l 在ASP.Net MVC中微软并没有提供类似服务器端控件那种开发方式式,毕竟微软的MVC就是传统的请求处理响应的回归。所以之前的那种事件响应的模型,抛弃服务器端控件也理所当然。但是如果手写Html标签效率又比较低,可重用度比较低。
l 微软为开发人员快速开发前台页面提供了丰富的HtmlHelper的辅助类,辅助我们快速开发前台页面,也提供了可扩展的接口,前台页面的标签可以可以做到高度可重用。
l HtmlHelper还继承了Model元数据的校验、ViewData和ViewBag数据绑定装配等自动化功能,也是非常实用的功能
l HtmlHelper还提供了强类型标标签更是在开发阶段就实现编译检测。提高了编码的效率。
l HtmlHelper还提供了模板编辑功能、页面嵌套等功能,后面一一介绍。
16.HtmlHelper的演变。
l 在MVC中所有的请求都归结到控制器下面的Action。所以所有的请求都是要指定一个具体的Action,Url的格式是根据路由规则来定的。比如,默认路由规则中定义请求的地址的格式:{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
dropDownList与TextBox等控件不同,它使用的是select标记。它需要两个值:在下拉列表框中现实的列表,和默认选项。而自动绑定一次只能绑定一个属性,因此您需要根据要选择是绑定列表,还是默认选项。
DropDownList扩展方法的各个重载版本“基本上”都会传递到这个方法上:
如果没有指定selectList,改方法将自动绑定列表,即从ViewData中查找name所对应的值。如果提供了selectlist,将自动绑定默认选项,即从selectList中找到Selected属性为true的selectedListItem
例1:如果在Action方法中有如下代码:
那么辅助方法将率先从ViewData中获取key为list的项,如果该项为IEnumerable<SelectedListIItem>类型则绑定到下拉列表框中,否则将抛出InvalidOperationException。异常,由于第二个SelectListItem的Selected为true,则默认选中第二个。
例2:如果Action中代码如下:
那么辅助方法将ViewData[“list”]绑定为下拉框,然后从ViewData中获取key为selected的项,并将下拉list中Value值与该项的值相等的SelectListItem设为默认选中项。
以上两种方法尽管可以实现DropDownList的正确显示,但是并非最佳实践。在实际项目中,我们更希望在代码中使用强类型,例如上面例子中,SelectListItem的Text和Value本来就是User对象的Name和Age属性,然而上面的代码却丝毫体现不出这种对应关系。如果User列表是从数据库或其他外部资源中获得的,我们难道还要用这种方式来绑定吗?
这显然是我们所无法容忍的。那么什么是最佳实践呢?
ASP.NET MVC为DropDownList和ListBox(都在html中使用select标记)准备了一个辅助类型:SelectList。SelectList继承自MultiSelectList,而后者实现了IEnumerable<SelectListItem>。也就是说,SelectList可以直接作为Html.DropDownList方法的第二个参数。
MultiSelectList包含四个属性,分别为:
- Items:用于在select标记中出现的列表,通常使用option标记表示。IEnumerable类型。
- DataTextField:作为option的text项,string类型。
- DataValueField:作为option的value项,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版本的时候,微软终于引入了第二种模板引擎:Razor。Razor在减少代码冗余、增加代码可读性和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. CKEditor在asp.net mvc中的使用:
l 下载CKEditor http://ckeditor.com/download
l 把解压后的目录拷贝到Content目录中。
l ckEditor在asp.net mvc中的使用就相当简单了,只需要在脚本中执行CKEDITOR.replace(id);id 为你需要拥有编辑功能的textarea的id
View:
Controller:
这里要注意[ValidateInput(false)]特性,它的目的是防止在提交时报“检测到有潜在危险的客户端输入值”。
l 运行后的效果图如下:
31.控制器详解
l 控制器的约定:必须实现IController接口、必须以Controller为结尾、必须非静态类。
l 在Action中可以访问HttpContext中所有的相关数据:比如Session、Cookie、也可以设置响应总之跟WebForm中Page类能做的,在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 、确定其他参数、根据识别出来的数据,将请求传递给Controller和Action。
l MVC项目是URL请求驱动。
l 为什么访问localhost/Home/Index会传递给HomeController中名为index的action(即HomeController类中的index方法)?怎么实现的呢?
l Global.asax.cs文件中定义了路由的识别规则
l 我们的URL:localhost/home/index
l Localhost是域名,所以首先要去掉域名部分:home/index。
l 对应了上面代码中的这种URL结构:{controller}/{action}/{id}
l 因为我们建立了这种URl结构的识别规则,所以能够识别出Controller是home,action是index,Id没有则为默认值””。
MapRoute()方法
l MapRout参数介绍
Name参数:规则名称,可以随意起名,不可以重名,否则会发生错误:路集合中已经存在名为“Default”的路由。路由名必须是唯一的。
url参数:url获取数据的规则,这里不是正则表达式,将要识别的参数括起来即可,比如:{controller}/{action}。最少只需要传递name和url参数就可以建立一条Routing(路由)规则。比如实例中的规则完全可以改为:routes.MapRoute(“Default”,”{controller}/{action}”)。
l 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 );
l 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();%>(MVC3、4中默认开启)
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
l ActionFilterAttribute默认实现了IActionFilter和IResultFilter。而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 RanderBody和RenderSection
l 实例
(一) 在Shared文件夹中创建_Layout3.cshtml
(二)创建一个页面使用次模板
补充:Json
JSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式。XML也是一种数据交换格式,为什么没有选择XML呢?因为XML虽然可以作为跨平台的数据交换格式,但是在JS(JavaScript的简写)中处理XML非常不方便,同时XML标记比数据多,增加了交换产生的流量,而JSON没有附加的任何标记,在JS中可作为对象处理,所以我们更倾向于选择JSON来交换数据。这篇文章主要从以下几个方面来说明JSON。
- Javascrip定义Json以及解析Json
- 通过序列化,把.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.表格内容筛选
第五章jQuery与Ajax的应用
1.Ajax的优势和不足
2.Ajax的优势
3.Ajax的不足
4.Ajax的XMLHttpRequest对象
5. jQuery中的Ajax 106
6. load()方法 106
7. $.get()和$.post()方法
8. $.getScript()和$.getJson()
9. $.ajax()方法 120
10.序列化元素 123
11. jQuery中的Ajax全局事件
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- asp.net源程序编译为dll文件并调用的实现过程 2020-03-29
- Asp.net MVC SignalR来做实时Web聊天实例代码 2020-03-29
- ASP.NET MVC中jQuery与angularjs混合应用传参并绑定数据 2020-03-29
- Asp.Net中WebForm的生命周期 2020-03-29
- ASP.NET使用Ajax返回Json对象的方法 2020-03-23
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash