zoukankan      html  css  js  c++  java
  • ASP.NET MVC4 Web 编程第七章

    asp.net web api

    随着web应用客户端ui ajax请求数量的增长,asp.net mvc基于jsonResult的控制器操作将无法满足高级ajax前端的需求,如果真的出现这种情况,就应该好好寻找一种更简单,有没得方法来处理ajax请求,现在是开始使用web api。

    asp.net web api框架同时使用leweb标准规范,比如http,json和xml,以及一系列构建rest数据服务的参考原则,asp,net web api与asp.net mvc很象,都使用了一些相同的核心概念,比如路由,控制器以及控制器操作结果,但他是用这些核心概念是为了支持不同的场景:哪些需要使用数据服务,而非html标签的场景。

    本章首先会详细介绍asp.net web api框架,并演示如何创建asp,net web api服务,然后介绍如何使用ajax调用服务。

    构建Data Service

    添加asp.net web API控制器与添加普通的控制器一样,下面几节会介绍如何向EBuy网站添加Web API控制器。

    在开始之前需要一个文件夹用来存放web api控制器的源代码文件,当然,web api控制器代码可以放在任何文件里,可根据个人的编程习惯而定,比如,偷人喜欢在网站更目录创建一个api文件夹,当然也可以把它存放在控制器文件夹里,只要没有任何命名冲突,asp.net都会自动区分它们。

    要添加性的web api控制器,只需要用右键点击要保存的文件夹(这里是api),然后选择“控制器”即可,弹出的对话框和添加普通的控制器对话框一样,如图7-1所示,只是在这里要选择“带有空的read/write操作的api控制器模板”,而不是普通的asp。net mvc 控制器模板,开始的时候,需要输入控制器的名字,例如auctionscontroller。cs设置完成以后,点击添加按钮就可以添加webapi控制器了,了7-1所示为新的webapi控制器代码。

     public class AuctionDatacontroller:apicontroller{

    public I额num二ableM《stringget(){returnnewstring{“value1”,“value2”};}

    public string Get(int id){return "value";} 

    public void Post(string value){}

    public void Put(int id,string value){}

    public void Delete(intid){}

    注册web api路由

    在使用这个控制器之前,必须在asp.net路由里注册它,否则无法接收请求消息。

    既然是基于asp.net mvc框架的,那么asp.net web api请求消息路由自然也是基于url的。

    因此它的注册过程与普通的控制器路由注册过程一样,唯一的区别就是web api使用的是RouteTable.MapHttpRoute()扩展方法,而不是RouteTable.MapRoute()。

    这是因为web api框架是使用“惯例优先原则”来查找正确的控制器操作方法。

    我们不需要在url路径里使用api字段,可以是用任意合法的字符串作为路由,只要不和其他的路由冲突即可。

    mvc路由配置规则使用与web api数据服务,但路由模式不要过于模糊或者过于细致

    依赖惯例优先原则

    与asp.net mvc 一样,asp.net web API也大量使用了惯例优先原则以减轻繁重的开发工作,例如,apicontroller依赖名称来关联不同的http操作,而不是使用httppost。attribute来标记不同的操作方法(asp.net mvc操作标记睡醒来控制请求方式映射的)。

    使用这些惯例很容易执行CRUD操作(create,read,update,DELETE).标准的http动词对应的cruo操作是:

     调用asp.net web api数据服务非常简单,例如下面的代码展示了如何使用jquery的S,getjson(方法来发送请求,地址时、apio.auction,这个服务放回交易书籍对象auction的)集合,格式是json。

     重写惯例

    折柳重要得意昂想是       ,控制器木ing黁个工艺坊只是用与那些名字宝把你尊哪些名字包含百尊http动词(create,read,update,delete)的控制器操作方法,如果想使用别的名称并且想调用web api功能,那该怎么办呢》那就使用            

    accpetverbsattribute标记属性或者httpgetattribute和http,和http、

    postattribute属性直接标记到web api控制器上,这与标记其他的asp。net mvc控制器操作方法一样,下面的代码夯实了这些表技术性的使用过程

     这个例子没有使用Rest管理Get,而是使用了自定义方法名称FindAuction。为了实现Get请求,我盟周期findAuction操作商标机HttpGetATTRIBUTE属性。

    构住API

    现在再来看一下之前创建的webapi控制器的设置。它可以执行CRUD操作。

    为了访问Ebuy数据库,AuctionsDataController:ApiController

     默认情况下,web api控制器需要默认构造参数(空参数),应为要传递IRepository给控制器,所以启动应用程序需要初始化自定义依赖解析器:

  • 相关阅读:
    shell脚本学习(1)列出一组IP内所有活动主机
    中兴ZXR10 GER4核心路由器配置案例
    中兴ZXR10 6905核心交换机配置案例
    NFS笔记(二)NFS服务器配置实例
    NFS笔记(一)NFS服务器工作原理及详细配置
    CentOS7.3下关于DHCP中继代理服务器的详细配置
    CentOS6下DHCP服务(二)简单配置案例及故障排查
    impdp 多个表空间到1个表空间通配符的使用
    11.2.0.4 has 启动失败
    oracle 11g 添加删除haip
  • 原文地址:https://www.cnblogs.com/555556J/p/13632538.html
Copyright © 2011-2022 走看看