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给控制器,所以启动应用程序需要初始化自定义依赖解析器:

  • 相关阅读:
    C++笔记(2018/2/6)
    2017级面向对象程序设计寒假作业1
    谁是你的潜在朋友
    A1095 Cars on Campus (30)(30 分)
    A1083 List Grades (25)(25 分)
    A1075 PAT Judge (25)(25 分)
    A1012 The Best Rank (25)(25 分)
    1009 说反话 (20)(20 分)
    A1055 The World's Richest(25 分)
    A1025 PAT Ranking (25)(25 分)
  • 原文地址:https://www.cnblogs.com/555556J/p/13632538.html
Copyright © 2011-2022 走看看