MVC 第一章(下)
继续第一章
用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 第一章(下)的更多相关文章
- 第一章 Javscript的数据类型
任何编程语言,都会讲到数据类型,那么我在这里也简述下Js的数据类型,在js里判断一个变量的数据类型用typeof() 简单数据类型undefined: 代表一切未知的事物,啥都没有,无法想象,代码 ...
- 第一章 自定义MVC框架
第一章 自定义MVC框架1.1 MVC模式设计 组成:Model:模型,用于数据和业务的处理 View :视图,用于数据的显示 Controller:控制器 ...
- Pro ASP.NET Core MVC 第6版 第一章
目录 第一章 ASP.NET Core MVC 的前世今生 ASP.NET Core MVC 是一个微软公司开发的Web应用程序开发框架,它结合了MVC架构的高效性和简洁性,敏捷开发的思想和技术和.N ...
- Artech的MVC4框架学习——第一章初步认识ASP.NET MVC
前言: Artech觉得掌握ASP.NET MVC具有三个层次. 第一层了解基本的编程模式,掌握Controller和View的定义方式,知道路由如何注册以及验证规则如何定义. 第二个层次要求我们对A ...
- (linux shell)第一章--小试牛刀(下)
文章来源: (linux shell)第一章--小试牛刀(下) 1.6 数组和关联数组 1.6.1 预备知识 Bash同一时候支持普通数组和关联数组.普通数组仅仅能使用整数作为数组索引,而关联数组能够 ...
- 《Entity Framework 6 Recipes》翻译系列 (1) -----第一章 开始使用实体框架之历史和框架简述
微软的Entity Framework 受到越来越多人的关注和使用,Entity Framework7.0版本也即将发行.虽然已经开源,可遗憾的是,国内没有关于它的书籍,更不用说好书了,可能是因为EF ...
- SpringMVC从入门到精通之第一章
第一节 简介:SpringMVC是Spring框架的一个模块,Spring和SpringMVC无需通过中间整合层进行整合.SpringMVC是基于MVC的WEB框架.MVC设计模式在B/S下的应用: ...
- 第一章 第一个spring boot程序(转载)
第一章 第一个spring boot程序 本编博客转发自:http://www.cnblogs.com/java-zhao/p/5324185.html 环境: jdk:1.8.0_73 mave ...
- 第一章 引言--《设计模式-可复用面向对象软件的基础》Erich Gamma
第一章 引言 本章主要是让我们大致明白设计模式是干嘛用的,模式分类,设计模式如何解决设计问题以及几种常见的面向对象设计中软件的复用方法. 1.什么是设计模式? 个人理解概括,设计模式是对一类问题的抽象 ...
随机推荐
- Winform 各种属性、方法、控件
窗体是程序与用户交互的可视界面,窗体也是对象,窗体类定义了生成窗体的模版,实例化一个窗体类就产生了一个窗体. .NET框架类库的System.Windows.Forms命名空间中定义的Form类是所有 ...
- 1.3.5、CDH 搭建Hadoop在安装之前(端口---Cloudera Search使用的端口)
Cloudera Search使用的端口 在下表中,每个端口的“ 访问要求”列通常是“内部”或“外部”.在此上下文中,“内部”表示端口仅用于组件之间的通信; “外部”表示该端口可用于内部或外部通信. ...
- ROW_NUMBER() OVER(PARTITION BY ORDER BY )RN 只选一行
') ; SELECT DISTINCT PEGGED_SO_ID,PEGGED_SO_LINE_ID ,ITEM_ID ,QUANTITY ,LOCATION ,SITEID ,ROW_NUMBER ...
- Pandas汇总和处理缺失数据
汇总的函数 方法 说明 count 非NA的值数量 describe 针对Series和DataFrame列计算汇总统计 min.max 计算最小值和最大值 argmin.argmax 计算能够获取到 ...
- es快照定时备份脚本
#!/bin/bashdata1=`date "+%Y%m%d"`data2="http://0.0.0.0:9200/_snapshot/my_backup/snaps ...
- as2.0 清除主时间轴上所有的影片简介
for (var i in _root) { if (typeof _root[i] == "movieclip") { _root[i].swapDepths(1); _root ...
- Numpy函数库基础
利用Numpy函数库构造4*4随机数组,然后将数组转化为矩阵,然后矩阵与其逆矩阵相乘,计算机处理的误差 from numpy import * random.rand(4,4) print(rando ...
- TOJ 2130: Permutation Recovery(思维+vector的使用)
传送门:http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=2130 时间限制(普通/Java): ...
- string类的一些函数方法
1.请查看String.equals()方法的实现代码,注意学习其实现方法: (1)源程序: public class StringEquals { /** * @param args the com ...
- [LeetCode_96] Unique Binary Search Trees
题目链接 https://leetcode.com/problems/unique-binary-search-trees/ 题意 计算给定节点数的BST有多少种 思路 递归 相关知识 二叉搜索树(B ...