zoukankan      html  css  js  c++  java
  • ASP.net 知识框架

    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全局事件

    世界那么大,代码连接你我他,凭借代码走天下,依靠代码撑起家
  • 相关阅读:
    Mycat读写分离+高可用笔记
    MyCAT基础安装笔记
    C# Winform中DataGridView的DataGridViewCheckBoxColumn CheckBox选中判断
    C# winform DataTable 批量数据处理 增、删、改 .
    选中CheckBoxList的值放到TextBox中,再次选中从textBox中删除
    dede后台删除文章后台还有分页显示解决方法
    dedecms数据库表说明大全
    织梦自增函数[field:global name=autoindex/]常见用法
    http协议的状态码——400,401,403,404,500,502,503,301,302等常见网页错误代码
    web.config设置之system.webServer 详细介绍,为网站设置默认文档
  • 原文地址:https://www.cnblogs.com/HKKILL/p/5593193.html
Copyright © 2011-2022 走看看