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。
- 查询参数按照名称对应