Asp.Net WebApi服务之创立

Web
API一种植REST架构风格的Web服务。所谓的REST架构与技能无关,而是面向资源的一致栽软件架构设计。

ASP.net

WCF自3.5之后也供了针对REST风格的辅助,但同WebAPI来相比显得较为笨重,WebAPI提供了更轻量级的通信架构。

第一章:ASP.NET介绍

咱看哪创设一个WebAPI服务

1.搭建ASP.NET开发条件;

首先新建一个solution,并于拖欠solution上面新建一个WebApi Project,如图

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

其次章节:页面访问控制

于新建的WebAPI项目被,新加Controller(类似于MVC的始建),我们从名叫CustomerController,在CustomerController中大家提供对Customer数据

1.理解Request和Response对象的使用;

简的长跟询问功效。具体的用调用仓储来兑现中逻辑处理,仓储类代码如下

2.左右Session对象的运;

//Model类
namespace CustomerService.Models
{
    public class Customer
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public string Email { get; set; }
    }
}

namespace CustomerService.Repository
{
    public interface ICustomerRepository
    {
        Customer GetCustomer(int id);

        int Add(Customer customer);
    }
}

namespace CustomerService.Repository
{
    public class CustomerRepository : ICustomerRepository
    {
        private static List<Customer> customers = new List<Customer>()
        {
            new Customer()
            {
                ID = 1,
                Name = "zhangsan",
                Email = "zhangsan@dx.com"
            },
            new Customer()
            {
                ID = 2,
                Name = "lisi",
                Email = "lisi@dx.com"
            },
            new Customer()
            {
                ID = 3,
                Name = "wangwu",
                Email = "wangwu@dx.com"
            }
        };

        public Customer GetCustomer(int id)
        {
            return customers.FirstOrDefault(c => c.ID == id);
        }

        public int Add(Customer customer)
        {
            int maxId = 0;
            if (customers != null)
            {
                maxId = customers.Max(c => c.ID);
                customer.ID = maxId;
                customers.Add(customer);
            }
            return maxId;
        } 
    }
}

3.控制库克(Cook)ie对象的以。

下面就是来拘禁一下Controller的代码

4.了解Application对象。

关键点:

1.HttpRequest目标封装客户端请求页面或交表单时提供音讯;

2.Request目的时由此性与形式

 

 

3.ReSponse对象时因而性与办法[ContentType、Write()、Redirect()、End()]。

 

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

 

库克ie特征 :存储少量数额,存储在客户端,安全性差,只可以存储字符串。

 

 

 

Session特点:

地方:保存于劳务器端,安全性高;类型:任意;Session保存之信息不跟其他用户共享;

于用户会话期间可以记录及监事用户音信;当会讲话过期或截止时服务器会败Session对象。

 

 

Application

 

 

Application特点:地点:服务器内存,执行进度快;使用范围:整个应用程序;类型:任意;生命周期:从应用程序成立及销毁。

namespace CustomerService.Controllers
{
    public class CustomerController : ApiController
    {
        private ICustomerRepository customerRepository;

        public CustomerController()
        {
            customerRepository = new CustomerRepository();
        }

        public Customer GetCustomerById(int id)
        {
            return customerRepository.GetCustomer(id);
        }

        public int AddCustomer(Customer customer)
        {
            return customerRepository.Add(customer);
        }
    }
}

老三章:表单和数目证实

上述是指向Web
API服务的创制步骤。WebAPI中呢在路由配置,可以对劳务的地点举行个性化。具体是以列蒙自动生成的App_Start文件加下WebApiConfig.cs中布局,代码如下

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

namespace CustomerService
{
    public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "GetCustomer",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );

            config.Routes.MapHttpRoute(
                name: "AddCustomer",
                routeTemplate: "api/{controller}/add",
                defaults: new { id = RouteParameter.Optional }
            );
        }
    }
}

2.控常用第三方控件的利用。

地点的代码是在Application_Start()方法中调用的(新建WebAPI项目之时光自动生成好之)

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

namespace CustomerService
{
    public class WebApiApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            GlobalConfiguration.Configure(WebApiConfig.Register);
        }
    }
}

4.左右验证控件的动。

关键点:

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

 

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

 

 

  1. 老三在控件【验证码控件】。

 

 

6.可行验证控制【Required菲尔德(Field)(Field)Validator非空验证、CompareValidato用于比控件的价值、RangeValidator用于范围验证。RegularExpressionValidator正则表明式举行认证的控件、CustomValidator自定义表明、ValidationSummary验证报告控件】。

 

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

 

迄今,大家的率先独WebAPI服务已创办成功,启动运作该种后(服务既开行状态),在浏览器(Chrom)中输入服务之地方询问单个Customer

季段:搭建风格统一的Web站点

http://localhost:24434/api/customer/1浏览器会突显起Xml格式的结果

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

起名 2

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常用字段类型【Bound菲尔德(Field)(Field)、TemplateField(有五栽模板:标头、脚注、普通项、交替项、编辑情势)、ButtonField字段、CommandField(Field)字段、HyperLinkField(Field)字段、ImageField字段、CheckBox菲尔德(Field)字段】。

 

 

 

 

 

 

光棒效果

 

多选取效率

 

 

6.伊娃(Eva)l()方法和Bind()方法的区别。7.Commandname设置由定义命令。

第七章:GridView深入

1.操纵得GridView单元格数据。

2.左右GridView基于仅仅元格的翻新。

3.控制GridView常用事件处理。

4.操纵GridView中之数删除。

关键点:

  1. 透过实施、列获取单元格数据。

 

  1. GridView的星星点点单重要性质

 

 

 

  1. 安模板列。

 

  1. 加加命令按钮。

 

5.RowEditing事件【GridViewEdit伊芙(Eve)ntArgs对象属性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中实现分页

 

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对象的常用方法。

关键点:

  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目录打及弗瑞德(Fred)CK.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对象常用方法

 

 

 

 

 

第九章:DataList与Repeater控件

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(Service)。

1.理解Web 瑟维斯(Service)(Service)的主干工作原理。

2.理解Web Service的优势。

3.控Web 瑟维斯(Service)(Service)的开发以及行使。

关键点:

1.web 瑟维斯凡是可互操作的分布式应用程序。

2.web Service(Service)用Http和XMl举行通信。

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

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

5.webSerivce底开销步骤

创建Web Service

同一、 打开vs2013,采取文件->新建->项目。

 

次、 选用【ASP.Net空web应用程序】,将其命名吧投机想的工。

 

其三、 然后右侧键点击工程,添加->web服务。然后命名为温馨想只要的劳务号。

 

 

季、 在asmx文件被形容来自己想只要开放的Web瑟维斯(Service)方法。

 

五、 方法勾勒了后,右击项目->发表

 

择【文件系统】发布,采用发布之情理地址,点击【公布】即可

 

以发表的大体地址被会生出这五只文本。

 

打开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.NET、html、javascript、ASP.Net WebForm的基础。项目面临实际用三叠架构、ORM等做客数据库,但是本次的紧要不是这一个,因此大家应用SQLHelper。

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

l 以Visual Studio 2013、.Net 4.5、 MS 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中之数据体现受用户。ASPX和ASCX文件被用来拍卖视图的任务。C:Controller处理用户交互,从model中获取数据并以数据传给指定的View

4.MVC架构模式

 

 

 

5.ASP.Net的蝇头栽开发形式

l WebForm的开发格局

劳器端控件
一般处理程序+html静态页+Ajax
诚如处理程序+html模板

l ASP.Net MVC的开发模式
二零零六年第一独开源项目版本宣布
越开发、更多之初特性、社区活跃
切莫会见代替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}”)。

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();%>(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 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。

  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.表格情筛选

 

第五章jQuery与Ajax的应用

1.Ajax的优势和不足

2.Ajax的优势

3.Ajax的不足

4.Ajax的XMLHttpRequest对象

  1. jQuery中的Ajax 106

  2. load()方法 106

  3. $.get()和$.post()方法

  4.  $.getScript()和$.getJson()

  5. $.ajax()方法 120

10.连串化元素 123

  1. jQuery中之Ajax全局事件

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图