继续第一章

用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. hdu3333-Turing Tree-(线段树+离散化处理)

    Turing Tree Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  2. c3 新特性

    渐变 线性渐变 .line {     height: 100px;     /*线性渐变语法*/     background-image: linear-gradient( to right,/* ...

  3. SQL server 基本语法

    文字摘自https://www.cnblogs.com/chaoa/articles/3894311.html 一.定义变量 --简单赋值 declare @a intset @a=5 print @ ...

  4. java 素数(按要求输出)

    package number; import java.util.Scanner; public class Prime { public static void main(String[] args ...

  5. 2017面向对象程序设计(Java) 第1周学习指导及要求(2017.8.24-2017.8.27)

    2017面向对象程序设计(Java) 第1周学习指导及要求(2017.8.24-2017.8.27)   学习目标 了解课程上课方式及老师教学要求,掌握课程学习必要的软件工具: 简单了解Java特点及 ...

  6. 关于订单BOM替换组件不成功的问题

    替换成功的案例: SELECT * FROM IN_BOM_DETAILS WHERE BOM_ID='00161815_2023_01P19'; --成品编码:000000101011006433P ...

  7. idea 安装和破解

    https://blog.csdn.net/SmileLvCha/article/details/78936659

  8. python return 及lambda函数

    return有两个作用: 1.用来返回函数的运行结果,或者调用另外一个函数.比如max()函数 >>> def fun(a,b): #返回函数结果. return max(a,b) ...

  9. 八、AbstractFactory 抽象工厂模式

    设计原理: 代码清单: 抽象 Factory : public abstract class Factory { public static Factory getFactory(String cla ...

  10. Linux 学习总结(三)

    一. yum 命令 .列出所有可更新的软件清单命令:yum check-update .更新所有软件命令:yum update .仅安装指定的软件命令:yum install <package_ ...