• Asp.net MVC4 Step By Step(5)-使用Web API


    Web API是ASP.net MVC4新增的一个特色, 应用于处理Ajax请求, 他同时使用了Web标准规范, 比如Http, Json,和XML,以及一系列构建REST数据服务的参考原则, 和ASP.net MVC很像,都使用了一些相同的核心概念, 比如路由,控制器以及控制器操作结果。 但是使用场景不同,他支持需要使用数据服务而非HTML标签的场景。

    可以在项目根目录下新建一个Api 目录,在这个目录添加Web API控制器,

    image

    控制器的内容如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Net.Http;
    using System.Web.Http;
     
    namespace Ebuy.Website.Api
    {
        public class AuctionsDataController : ApiController
        {
            // GET api/auctionsdata
            public IEnumerable<string> Get()
            {
                return new string[] { "value1", "value2" };
            }
     
            // GET api/auctionsdata/5
            public string Get(int id)
            {
                return "value";
            }
     
            // POST api/auctionsdata
            public void Post([FromBody]string value)
            {
            }
     
            // PUT api/auctionsdata/5
            public void Put(int id, [FromBody]string value)
            {
            }
     
            // DELETE api/auctionsdata/5
            public void Delete(int id)
            {
            }
        }
    }

    这个时候还要注册路由,具体位置在App_Start目录下的WebApiConfig.cs文件里的帮助方法

        public static class WebApiConfig
        {
            public static void Register(HttpConfiguration config)
            {
                config.Routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: "api/{controller}/{id}",
                    defaults: new { id = RouteParameter.Optional }
                );
            }
        }

    注册过程和普通的控制器路由注册过程一样,区别是Web API使用的是RouteTable.MapHttpRoute()扩展方法。 而不是RouteTable.MapRoute()。


    ApiController依赖名称来关联不同的Http操作, 使用这些惯例很容易执行CRUD操作(Create, Read, Update, Delete) ,标准的HTTP动词对应的CRUD操作时:GET(读)  PUT(更新或创建) POST(新建) DELETE(删除)


    调用 ASP.NET MVC Web API数据服务

    下面代码展示了使用$.getJSON()方法来发送请求, 地址是/api/auction. 这个服务返回交易数据对象autions的集合,格式是JSON。

    <script type="text/javascript">
        $(function() {
             $.getJSON ("api/AuctionsData",
             function(data) {
                    $.each(data, function( key, val) {
                            var str=val.Description;
                            $( '<li/>', { html: str}).appendTo( $(  '#auctions' ) );
                    });
             });
         })
    </script>
  • 相关阅读:
    npm 全局执行 update 、 outdated 出现 npm-debug.log 404 错误的问题
    python 爬虫爬取内容时, xa0 、 u3000 的含义
    SCNU ACM 2016新生赛决赛 解题报告
    SCNU ACM 2016新生赛初赛 解题报告
    【记录】Ubuntu下安装VirtualBox
    Ubuntu16.04 LTS下apt安装WireShark
    Java的初始化块、静态初始化块、构造函数的执行顺序及用途探究
    Ubuntu在wps-office等qt5程序下不能切换中文fcitx输入法的问题
    Ubuntu管理开机启动服务项 -- 图形界面的Boot-up Manager
    解决Ubuntu下Firefox+OpenJDK没有Java插件的问题
  • 原文地址:https://www.cnblogs.com/grkin/p/3306499.html
Copyright © 2020-2023  润新知