1、建议使用异步接口async Task<>

 public async Task<IHttpActionResult> Get()

如果返回的是IEnumerable请使用:

return Ok<IEnumerable<ListSitesDetails>>(sites);

如果返回是实体请使用:

 return Ok(entity);

此返回常常在获取一个类型值时使用:

 public async Task<IHttpActionResult> Get(int id)

如果仅仅返回一个成功结果200就是直接Ok();就行了

如果想返回一个实体类又想返回一个地址路由请使用:

return CreatedAtRoute("DefaultApi", new {controller="Home",id=sites.Id }, sites); 
转到api/Home/id上,并返回刚刚添加的sites新内容
return Created("http://www.*.com",sites);
返回sites和位置

2、在WebApi里怎样自定义方法?怎样调用方法?

public async Task<IHttpActionResult> GetTest(string account)
{
string restmsg = await UserLogin("十五里元中学", account, "");
return Ok(restmsg);
}

如果是get访问则所有方法前面都要加Get; Post则要加Post;可是调用的时候要去掉Get/Post

比如上面的代码要调用它要这样:/api/users/test?account=james

当然你也可以添加路由改变访问方式:

[Route("api/users/gettest/{account}")]
public async Task<IHttpActionResult> GetTest(string account)
{
string restmsg = await UserLogin("十五里元中学", account, "");
return Ok(restmsg);
}

上面要调用则使用:/api/users/test/james方式

-------------------------------------------------------------------------------------

再来看Post示例

[HttpPost]
public async Task<IHttpActionResult> PostLogin(string school)

这个表示是Post访问调用,它的调用为:/api/Users/login?school=十五里元中学

如果多个参数,建议直接使用类型传值,不要使用string。比如:

[HttpPost]
public async Task<IHttpActionResult> PostLogin(Item item)
public class Item
{
public string school{get;set;}
public string account{get;set;}
public string password{get;set;}
}

调用:

var item = {'school':'十五里元中学','account':'james','password':'0000'};
return $http({
url: 'api/user/login',
method: 'POST',
type: 'application/json',
data: item
}).then(function (user) {
// check the user is null or not and take action
}).error(function (error) {
alert('invalid');
});

WebApi2 知识点总结的更多相关文章

  1. ASP.NET Core 中的那些认证中间件及一些重要知识点

    前言 在读这篇文章之间,建议先看一下我的 ASP.NET Core 之 Identity 入门系列(一,二,三)奠定一下基础. 有关于 Authentication 的知识太广,所以本篇介绍几个在 A ...

  2. ASP.NET MVC开发:Web项目开发必备知识点

    最近加班加点完成一个Web项目,使用Asp.net MVC开发.很久以前接触的Asp.net开发还是Aspx形式,什么Razor引擎,什么MVC还是这次开发才明白,可以算是新手. 对新手而言,那进行A ...

  3. UWP开发必备以及常用知识点总结

    一直在学UWP,一直在写Code,自己到达了什么水平?还有多少东西需要学习才能独挡一面?我想对刚接触UWP的开发者都有这种困惑,偶尔停下来总结分析一下还是很有收获的! 以下内容是自己开发中经常遇到的一 ...

  4. C#高级知识点&(ABP框架理论学习高级篇)——白金版

    前言摘要 很早以前就有要写ABP高级系列教程的计划了,但是迟迟到现在这个高级理论系列才和大家见面.其实这篇博客很早就着手写了,只是楼主一直写写停停.看看下图,就知道这篇博客的生产日期了,谁知它的出厂日 ...

  5. lucene 基础知识点

    部分知识点的梳理,参考<lucene实战>及网络资料 1.基本概念 lucence 可以认为分为两大组件: 1)索引组件 a.内容获取:即将原始的内容材料,可以是数据库.网站(爬虫).文本 ...

  6. DoraCMS 源码知识点备注

    项目需要研究了下DoraCMS这款开源CMS,真心做的不错:).用的框架是常用的express 4 + mongoose,代码也很规范,值得学习. 源码中一些涉及到的小知识点备注下: https:// ...

  7. atitit 商业项目常用模块技术知识点 v3 qc29

    atitit 商业项目常用模块技术知识点 v3 qc29 条码二维码barcodebarcode 条码二维码qrcodeqrcode 条码二维码dm码生成与识别 条码二维码pdf147码 条码二维码z ...

  8. HTML5知识点总结

    HTML5知识点总结(一) 一.HTML新增元素 1.IE9版本以下支持HTML5的方法 <!--[if lt IE9]> <script src="http://cdn. ...

  9. JavaScript易错知识点整理

    前言 本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一 ...

随机推荐

  1. 【推导】zoj3981 Balloon Robot

    题意:一个桌子有m个位置(首尾相接),有n支队伍坐在其中的n个位置上.有个机器人会从某个起始位置出发,每个时刻会依次发生以下三个事件: 机器人顺时针转一个单位: 某些队伍通过了题目(如果存在): 如果 ...

  2. 三、python的数据类型 列表、元组、字典

    1.list 列表 列表是由一序列特定顺序排列的元素组成的.可以把字符串,数字,字典等都可以任何东西加入到列表中,列表中的元素之间没有任何关系.列表也是自带下标的,默认也还是从0开始. List常用的 ...

  3. 权限验证AuthorizeAttribute

    /// <summary> /// 权限验证属性. /// </summary> public class AuthorizeExAttribute : AuthorizeAt ...

  4. Educational Codeforces Round 12 B. Shopping 暴力

    B. Shopping 题目连接: http://www.codeforces.com/contest/665/problem/B Description Ayush is a cashier at ...

  5. MariaDB 主从复制

    MySQL Replication:NySQL复制,MySQL的复制默认为异步工作模式    mysql的复制功能是mysql内置的,装上它之后就具备了这个功能,而mysql复制是mysql实现大规模 ...

  6. NSDictionary , NSMutableDictionary, NSMutableDictionary 和 NSMutableSet)相当于java的map、set

    1 NSDictionary 和 NSMutableDictionary NSDictionary  :就是java中的map; 放入对象是键值对 key-value  , 同样 秉持了一样的原则,只 ...

  7. Can a windows dll retrieve its own filename?

    http://stackoverflow.com/questions/2043/can-a-windows-dll-retrieve-its-own-filename A windows exe fi ...

  8. UML建模工具Visio 、Rational Rose、PowerDesign的比较

    UML建模工具Visio .Rational Rose.PowerDesign的比较   ROSE是直接从UML发展而诞生的设计工具,它的出现就是为了对UML建模的支持,ROSE一开始没有对数据库端建 ...

  9. Gradle Android最新自动化编译脚本教程

    转自:http://blog.csdn.net/changemyself/article/details/39927381 一.前言 Gradle 是以 Groovy 语言为基础,面向Java应用为主 ...

  10. sqlite3 支持的关联查询

    1.支持多表连接,例如 select * from student,class where student.cid=class.id; 2.支持左外连接(left outer join) 例如: se ...