继续第一章

用Javascript and jQuery调用Web API

在上一节,我们用浏览器直接调用web API。但是大多数web API被客户端应用以编程的方式调用。那么我们写一个简单的javascript客户端。

在解决方案资源管理器中,打开Index.cshtml。

敲入下面的代码:

 

获取一些产品

为了获取产品,要发送一个 HTTP GET请求到/api/products。

JQuery的getJSON方法发起了一个AJAX request,返回一个JSON格式的数据。done方法定义了一个会在请求成功的时候调用的回调函数。在回调函数中,我们用返回的JSON格式的数据(产品信息)更新DOM。

通过ID获取一个产品

为了获取一个产品,要发送一个HTTP GET请求到/api/products/id,其中id是产品ID。

我们仍然使用getJSON发起了一个AJAX request,但是这次我们在请求的URI中传递了一个ID。这个请求返回一个产品。

get a product by ID, send an HTTP GET  request to "/api/products/id", where id is the product ID.

运行程序

按下F5。运行效果如下:

虽然这不是最好的web设计,但是它显示了HTTP service的工作方式。

可以在输入框中输入产品编码:

如果输入不存在的编码,就会出现错误信息

理解路由

这一节讲解的是ASP.NET Web API 的URI怎么隐射到controller方法上的。

ASP.NET Web API framework通过一个路由表为每一个HTTP request找到应该使用的controller。当你创建一个Web  API工程时,工程包含了默认的路由:

/api/{controller}/{id}

当ASP.NET Web API framework发现URI对应上述模式时,它就找到一个controller方法来触发。寻找controller的条件:

  • {controller} 对应controller名。
  • HTTP request 方法对应method名。 (仅仅适用于GET, POST, PUT, 和DELETE请求)(待验证)
  • 如果输入{id}就对应方法的参数id
  • 查询参数按照名称对应

MVC 第一章(下)的更多相关文章

  1. 第一章 Javscript的数据类型

      任何编程语言,都会讲到数据类型,那么我在这里也简述下Js的数据类型,在js里判断一个变量的数据类型用typeof() 简单数据类型undefined: 代表一切未知的事物,啥都没有,无法想象,代码 ...

  2. 第一章 自定义MVC框架

    第一章  自定义MVC框架1.1 MVC模式设计    组成:Model:模型,用于数据和业务的处理          View :视图,用于数据的显示          Controller:控制器 ...

  3. Pro ASP.NET Core MVC 第6版 第一章

    目录 第一章 ASP.NET Core MVC 的前世今生 ASP.NET Core MVC 是一个微软公司开发的Web应用程序开发框架,它结合了MVC架构的高效性和简洁性,敏捷开发的思想和技术和.N ...

  4. Artech的MVC4框架学习——第一章初步认识ASP.NET MVC

    前言: Artech觉得掌握ASP.NET MVC具有三个层次. 第一层了解基本的编程模式,掌握Controller和View的定义方式,知道路由如何注册以及验证规则如何定义. 第二个层次要求我们对A ...

  5. (linux shell)第一章--小试牛刀(下)

    文章来源: (linux shell)第一章--小试牛刀(下) 1.6 数组和关联数组 1.6.1 预备知识 Bash同一时候支持普通数组和关联数组.普通数组仅仅能使用整数作为数组索引,而关联数组能够 ...

  6. 《Entity Framework 6 Recipes》翻译系列 (1) -----第一章 开始使用实体框架之历史和框架简述

    微软的Entity Framework 受到越来越多人的关注和使用,Entity Framework7.0版本也即将发行.虽然已经开源,可遗憾的是,国内没有关于它的书籍,更不用说好书了,可能是因为EF ...

  7. SpringMVC从入门到精通之第一章

    第一节 简介:SpringMVC是Spring框架的一个模块,Spring和SpringMVC无需通过中间整合层进行整合.SpringMVC是基于MVC的WEB框架.MVC设计模式在B/S下的应用: ...

  8. 第一章 第一个spring boot程序(转载)

    第一章 第一个spring boot程序 本编博客转发自:http://www.cnblogs.com/java-zhao/p/5324185.html   环境: jdk:1.8.0_73 mave ...

  9. 第一章 引言--《设计模式-可复用面向对象软件的基础》Erich Gamma

    第一章 引言 本章主要是让我们大致明白设计模式是干嘛用的,模式分类,设计模式如何解决设计问题以及几种常见的面向对象设计中软件的复用方法. 1.什么是设计模式? 个人理解概括,设计模式是对一类问题的抽象 ...

随机推荐

  1. centos7 防火墙 开启端口 并测试

    1.防火墙 CentOS升级到7之后,发现无法使用iptables控制Linuxs的端口,google之后发现Centos 7使用firewalld代替了原来的iptables.下面记录如何使用fir ...

  2. CSS----学习

    CSS---表现层,修饰和表现html文档,为了解决结构层和表现层分离的问题. 通过CSS极大的提高了工作效率,方便工作人员维护和管理CSS:层叠样式表,目前用的最广泛的css版本为css2,最新版本 ...

  3. 新手必看ES6基础

    ES6 基础 一.新的变量声明方式 let/const 与var不同,新的变量声明方式带来了一些不一样的特性,其中最重要的两个特性就是提供了块级作用域与不再具备变量提升. 通过2个简单的例子来说明这两 ...

  4. html -引入其他html页面

    其他页面html为:ip.html 主页面代码 <body> <div id="ip"></div> </body> <scr ...

  5. 制作u盘kali系统启动盘

    准备好一个容量大于8G的u盘,和kali系统的镜像文件. 下载universal-usb-install软件,打开设置如下,create等待几分钟. 下载minitool分区工具,插入u盘,打开min ...

  6. IDEA错误:Cannot start compilation: the output path is not specified for module "Test". Specify the out

    错误是发生在从github上checkout自己的项目时.因为没有将配置文件一起上传,所以在运行Java程序时有了这个报错: Cannot start compilation: the output ...

  7. java学习笔记整理

    java知识模块:1.基础知识,数组,字符串,正则表达式:2.类和对象,接口,继承,多态,抽象类,内部类,泛型,java常用类库.3.异常处理: 4.IO:   5.事件处理:   6.多线程:  7 ...

  8. 学习Junit资料

    以下是找到的一些有用的学习资料,先收藏了 http://www.blogjava.net/jiangshachina/archive/2011/12/14/366289.html http://www ...

  9. [leetcode]445. Add Two Numbers II 两数相加II

    You are given two non-empty linked lists representing two non-negative integers. The most significan ...

  10. Git下基本命令操作

    提前准备好一个文件夹,并且进入该文件夹. 1.clone Github 上的Repository,如: git clone git@github.com:Git账号用户名/项目名称.git 2.仓库初 ...