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

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

控制器的内容如下:

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>

Asp.net MVC4 Step By Step(5)-使用Web API的更多相关文章

  1. 返璞归真 asp.net mvc (10) - asp.net mvc 4.0 新特性之 Web API

    原文:返璞归真 asp.net mvc (10) - asp.net mvc 4.0 新特性之 Web API [索引页][源码下载] 返璞归真 asp.net mvc (10) - asp.net ...

  2. 【ASP.NET MVC 5】第27章 Web API与单页应用程序

    注:<精通ASP.NET MVC 3框架>受到了出版社和广大读者的充分肯定,这让本人深感欣慰.目前该书的第4版不日即将出版,现在又已开始第5版的翻译,这里先贴出该书的最后一章译稿,仅供大家 ...

  3. 【转】asp.net Core 系列【二】—— 使用 ASP.NET Core 和 VS2017 for Windows 创建 Web API

    在本教程中,将生成用于管理“待办事项”列表的 Web API. 不会生成 UI. 概述 以下是将创建的 API: API 描述 请求正文 响应正文 GET /api/todo 获取所有待办事项 无 待 ...

  4. Asp.net MVC使用FormsAuthentication,MVC和WEB API可以共享身份认证 (转载)

    在实际的项目应用中,很多时候都需要保证数据的安全和可靠,如何来保证数据的安全呢?做法有很多,最常见的就是进行身份验证.验证通过,根据验证过的身份给与对应访问权限.同在Web Api中如何实现身份认证呢 ...

  5. ASP.NET MVC4 with MySQL: Configuration Error (MySql.Web.v20)

    今天在浏览ASP.NET项目时,提示如下错误: Could not load file or assembly ‘MySql.Web.v20, Version=6.9.4.0, Culture=neu ...

  6. Asp.Net Core 3.0 学习3、Web Api 文件上传 Ajax请求以及跨域问题

    1.创建Api项目 我用的是VS2019 Core3.1 .打开Vs2019 创建Asp.Net Core Web应用程序命名CoreWebApi 创建选择API 在Controller文件夹下面添加 ...

  7. Asp.Net Core 3.1 学习3、Web Api 中基于JWT的token验证及Swagger使用

    1.初始JWT 1.1.JWT原理 JWT(JSON Web Token)是目前最流行的跨域身份验证解决方案,他的优势就在于服务器不用存token便于分布式开发,给APP提供数据用于前后端分离的项目. ...

  8. Creating the Help Page in ASP.NET Web API

    Introduction In this article we will define the process of creating the help page in the ASP .NET We ...

  9. 【转载】ASP.NET MVC Web API 学习笔记---联系人增删改查

    本章节简单介绍一下使用ASP.NET MVC Web API 做增删改查.目前很多Http服务还是通过REST或者类似RESP的模型来进行数据操作的.下面我们通过创建一个简单的Web API来管理联系 ...

随机推荐

  1. react typescript 子组件给父组件传值

    //父组件 import * as React from 'react'import { Input } from 'antd'const Search = Input.Searchimport &q ...

  2. Quartz.NET 定时任务使用

    class Program { static void Main(string[] args) { StartJob(); Console.ReadKey(); } static void Start ...

  3. Maven中更改默认JDK版本

    只要在settings.xml文件中加上如下标签即可.(我这里是默认的1.7版本) <profiles> <profile> <id>jdk-1.7</id& ...

  4. 第六节:numpy之数组拼接

  5. BZOJ 4327 [JSOI2012]玄武密码 (AC自动机)

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=4327 题解: 做法挺显然,建出AC自动机之后在上面跑,标记所有走过的点,然后再进行递推 ...

  6. hdu 4707 bellman

    最短路的优先队列做法: #include<stdio.h> #include<queue> #include<string.h> #define N  100010 ...

  7. sql server使用杂记(二)

    存储过程CREATE PROCEDURE [dbo].[getprofitandloss]@agentNo varchar(10),@o0 varchar(30),@source varchar(30 ...

  8. MVC.Net: jqueryval错误

    当使用Mvc.net创建Create表单后,firebug Create页面会出现404 Not Found - http://192.168.3.95:7001/bundles/jqueryval& ...

  9. selenium清空默认文字

    默认输入框 鼠标点击上去还有文案 直接用 clear不可以

  10. cannot find -l****问题的解决的方法

    在ubuntu下编译C或cpp文件时,可能会出现找不到链接库的问题,其形式为: cannot find -l**** 这里的**通常是指的链接库.比方,刚刚装好opencv,依照网上教程一步步编译好了 ...