ASP.NET中Web API的简单实例

一、Web API的路由
1、在Visual Studio中新建MVC4项目,在App_Start目录下有一个WebApiConfig.cs文件,这个文件中就是相应的Web API的路由配置了。
2、Web API 框架默认是基于 Restful 架构模式的,与ASP.NET MVC 有区别的是,它会根据 Http 请求的 HttpMethod(Get、Post、Put、Delete)来在Controller 中查找 Action,规则是:Action 名中是否以Get、Post 开头?Action 上标记 HttpGet、HttpPost 等标记?
3、当然可以修改默认的配置,让客户端在调用时显式指定 action 名称,例如

config.Routes.MapHttpRoute(
 name: "DefaultApi",
 routeTemplate: "api/{controller}/{action}/{id}",
 defaults: new { id = RouteParameter.Optional }
);

这样,由于显式指定了 Action 名称,Web API 会使用该名称来查找对应的 Action 方法,而不再按照 HttpMethod 约定来查找对应的 Action。
 二、ASP.NET中Web API的简单实例
 1、Get请求数据
(1)、定义一个UserModel 类

public class UserModel
{
 public string UserID { get; set; }
 public string UserName { get; set; }
}

(2)、添加一个Web API Controller :UserController

public class UserController : ApiController
{
 public UserModel getAdmin()
 {
  return new UserModel() { UserID = "000", UserName = "Admin" };
 }
}

(3)、在浏览器访问:api/user/getadmin (默认返回的是XML数据模型)

(4)、AJAX请求这个api,指定数据格式为json

$.ajax({
 type: 'GET',
 url: 'api/user/getadmin',
 dataType: 'json',
 success: function (data, textStatus) {
  alert(data.UserID + " | " + data.UserName);
 },
 error: function (xmlHttpRequest, textStatus, errorThrown) {
 }
});

 2、POST提交数据
(1)、UserController 里面添加一个Action

public bool add(UserModel user)
{
 return user != null;
}

(2)、页面上添加一个button

<input type="button" name="btnOK" id="btnOK" value="发送POST请求" />

(3)、JS post提交数据

$('#btnOK').bind('click', function () {
 //创建ajax请求,将数据发送到后台处理
 var postData = {
  UserID: '001',
  UserName: 'QeeFee'
 };
 $.ajax({
  type: 'POST',
  url: 'api/user/add',
  data: postData,
  dataType: 'json',
  success: function (data, textStatus) {
   alert(data);
  },
  error: function (xmlHttpRequest, textStatus, errorThrown) {
  }
 });
});

以上就是ASP.NET中Web API的简单实例,还包括Web API路由介绍,希望对大家的学习有所帮助。

(0)

相关推荐

  • ASP.NET Web API教程 创建域模型的方法详细介绍

    添加模型 There are three ways to approach Entity Framework: 有三种方式使用实体框架: Database-first: You start with a database, and Entity Framework generates the code. Database-first(数据库先行):从一个数据库开始,然后实体框架生成相应代码. Model-first: You start with a visual model, and Enti

  • 为ASP.NET MVC及WebApi添加路由优先级

    一.为什么需要路由优先级 大家都知道我们在Asp.Net MVC项目或WebApi项目中注册路由是没有优先级的,当项目比较大.或有多个区域.或多个Web项目.或采用插件式框架开发时,我们的路由注册很可能 不是写在一个文件中的,而是分散在很多不同项目的文件中,这样一来,路由的优先级的问题就突显出来了. 比如: App_Start/RouteConfig.cs中 routes.MapRoute( name: "Default", url: "{controller}/{actio

  • ASP.NET Web API如何将注释自动生成帮助文档

    ASP.NET Web API从注释生成帮助文档 默认情况下,ASP.NET Web API不从Controller的注释中生成帮助文档.如果要将注释作为Web API帮助文档的一部分,比如在帮助文档的Description栏目中显示方法注释中的summary,需要进行一些配置操作. 首先在Visual Studio中打开Web API项目的属性页,在Build设置页,选中XML document file,输入将要生成的XML文件放置的路径,比如:App_Data\OpenAPI.XML. 然

  • 推荐8项提高 ASP.NET Web API 性能的技术

    在本文中,我将介绍8项提高 ASP.NET Web API 性能的技术. 1) 使用最快的 JSON 序列化工具 JSON 的序列化对整个 ASP.NET Web API 的性能有着关键性的影响.在我的一个项目里,我从JSON.NET 序列化工具转到了ServiceStack.Text有一年半了. 我测量过,Web API 的性能提升了20%左右.我强烈建议你去尝试一下这个序列化工具.这里有一些最近的流行序列化工具性能的比较数据. 来源:theburningmonk 更新: 似乎It seams

  • ASP.NET Web API教程 创建Admin视图详细介绍

    Now we'll turn to the client side, and add a page that can consume data from the Admin controller. The page will allow users to create, edit, or delete products, by sending AJAX requests to the controller. 现在我们转入客户端,并添加一个能够使用从Admin控制器而来的数据的页面.通过给控制器发

  • 创建一个完整的ASP.NET Web API项目

    Visual Studio为我们提供了专门用于创建ASP.NET Web API应用的项目模板,借助于此项目模板提供的向导,我们可以"一键式"创建一个完整的ASP.NET Web API项目.在项目创建过程中,Visual Studio会自动为我们添加必要的程序集引用和配置,甚至会为我们自动生成相关的代码,总之一句话:这种通过向导生成的项目在被创建之后其本身就是一个可执行的应用. 一.通过VS2013..NET 4.5.1创建一个Web API项目 1.解决方案下面新建项目 2.选择项

  • ASP.NET MVC Web API HttpClient简介

    1.HttpClient简单介绍 依稀还记得那个时候用WebClient,HttpWebRequest来发送一个请求,现在ASP.NET MVC4中自带了一个类HttpClient,用于接收HttpResponseMessage和发送HttpRequestMesssage. 问题在于既然WebClient,HttpWebRequest可以完成相应的功能,为什么还要使用HttpClient类,.NET Framework中既然提出了这样一个类肯定是有其特别之处的,这里罗列几个不同之处: (1) 可

  • ASP.net WebAPI 上传图片实例

    复制代码 代码如下: [HttpPost] public Task<Hashtable> ImgUpload() {     // 检查是否是 multipart/form-data     if (!Request.Content.IsMimeMultipartContent("form-data"))         throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);     //文

  • ASP.NET Web API教程 创建Admin控制器实例分享

    In this section, we'll add a Web API controller that supports CRUD (create, read, update, and delete) operations on products. The controller will use Entity Framework to communicate with the database layer. Only administrators will be able to use thi

  • ASP.NET中Web API的简单实例

    一.Web API的路由 1.在Visual Studio中新建MVC4项目,在App_Start目录下有一个WebApiConfig.cs文件,这个文件中就是相应的Web API的路由配置了. 2.Web API 框架默认是基于 Restful 架构模式的,与ASP.NET MVC 有区别的是,它会根据 Http 请求的 HttpMethod(Get.Post.Put.Delete)来在Controller 中查找 Action,规则是:Action 名中是否以Get.Post 开头?Acti

  • ASP.NET中Web API解决跨域问题

    一.什么是跨域问题 跨域:指的是浏览器不能执行其他网站的脚本.是由浏览器的同源策略造成的,是浏览器施加的安全限制.(服务端可以正常接收浏览器发生的请求,也可以正常返回,但是由于浏览器的安全策略,浏览器不能处理服务端的返回). 那么什么是同源策略呢? 同源策略/SOP(Same origin policy)是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS.CSFR等攻击.所谓同源是指"协议+域名+端口"

  • ASP.NET中Web API的参数绑定

    在这篇文章中,我们将学习WebAPI如何将HTTP请求数据绑定到一个操作方法的参数中. 操作方法在WebAPI控制器中可以有一个或多个不同类型的参数.它可以是基本数据类型或复杂类型.WebAPI根据URL的查询字符串或请求主体中参数类型来绑定操作方法的参数. 如果参数类型是基本数据类型(int,double,string,DateTime,bool等),WebAPI默认将会从URL中获取参数值(即通过querystring)获取. 如果参数类型的复杂类型,WebAPI默认从请求主体中获取参数值.

  • 详解如何在ASP.NET Core Web API中以三种方式返回数据

    在 ASP.NET Core 中有三种返回 数据 和 HTTP状态码 的方式,最简单的就是直接返回指定的类型实例,如下代码所示: [ApiController] [Route("[controller]")] public class WeatherForecastController : ControllerBase { [HttpGet] public IEnumerable<WeatherForecast> Get() { var rng = new Random()

  • 在IIS上部署ASP.NET Core Web API的方法步骤

    对于本文,我想与您分享有关如何在IIS上部署ASP.NET Core Web API的指南.我将指导您安装Visual Studio 2019,.NET Core Runtime 3.0.我还确保我逐步引导您在服务器(Web IIS)中启用它,使用no受管代码选项创建新的应用程序池,创建ASP.NET Core Web API项目以及发布ASP.NET Core Web API. 了解并遵循正确的步骤来准备开发和部署环境后,在IIS上部署ASP.NET Core Web API就是一件容易的事.

  • 详解ASP.NET Core Web Api之JWT刷新Token

    前言 如题,本节我们进入JWT最后一节内容,JWT本质上就是从身份认证服务器获取访问令牌,继而对于用户后续可访问受保护资源,但是关键问题是:访问令牌的生命周期到底设置成多久呢?见过一些使用JWT的童鞋会将JWT过期时间设置成很长,有的几个小时,有的一天,有的甚至一个月,这么做当然存在问题,如果被恶意获得访问令牌,那么可在整个生命周期中使用访问令牌,也就是说存在冒充用户身份,此时身份认证服务器当然也就是始终信任该冒牌访问令牌,若要使得冒牌访问令牌无效,唯一的方案则是修改密钥,但是如果我们这么做了,

  • IIS7中Web.config的rewrite实例分析讲解,教你看懂重写规则

    本文详细介绍解释了IIS7 Web.config rewrite规则设置url重写功能,通过讲解实例的语法结构和标签用法,搭配一些简单的正则表达式,你可以写出符合自己要求的重写规则. 首先请注意,本文适用IIS7及以上rewrite重写功能. 同样要注意的是,要实现在 Web.config 的rewrite重写功能,你必须先安装 URL_Rewrite 重写模块. 下面是本文要介绍的内容,如何通过 Web.config 的rewrite规则,设置url重写功能. 实例代码 <?xml versi

  • java从字符串中提取数字的简单实例

    随便给你一个含有数字的字符串,比如: String s="eert343dfg56756dtry66fggg89dfgf"; 那我们如何把其中的数字提取出来呢?大致有以下几种方法,正则表达式,集合类,还有就是String类提供的方法. 1 String类提供的方法: package 测试练习; import Java.util.*; public class get_StringNum { /** *2016.10.25 */ public static void main(Strin

  • Action访问Servlet的API的简单实例

    Action访问Servlet的API_,主要访问如下: 1.>获取request对象 2.>获取请求参数 3.>获取response对象,可用于传递cookie 3.>获取作用域对象,request,Session,application,并设置共享数据, 访问方式一: 通过实现感知接口中的setter方法,讲其setter方法中的request参数传递到本类中来: 即,在本类中定义一个成员变量,来接收setter方法中的request. 如果,还需要获取response,Ses

  • ASP.NET Core Web API 教程Project Configuration

    目录 1. 创建新项目 2. launchSettings.json 文件 3. Program.cs 和 Startup.cs 4. 扩展方法和 CORS 配置 5. IIS 配置 6. Startup 类中的其它代码 7. 基于环境的设置 前言: 本系列文章主要参考了<Ultimate ASP.NET Core 3 Web API>一书,对原文进行了翻译,同时适当删减.修改了一部分内容. 对于某些概念和原理,原书和本文中都没有进行详细描述,如果一一详细介绍,内容就显得臃肿且混乱,我个人是先

随机推荐