if (name == "admin") return 25;
if (name == "lily") return 18;
return 0; //Action 的返回值可以是普通类型,这是最常用的。
[HttpGet]
public void ExecuteFun()
//Action 的返回值可以为void,这样客户端会得到204 的状态码,尽量别这样干
public IHttpActionResult Add(int i)
if (i == 1)
return Ok(); //如果返回Ok(),就表示不向客户端返回任何信息,只告诉客户端请求成功。
if (i == 2)
return Json(new { code = 0, data = "abc" }); //返回一个json数据
if (i == 3)
List
list = new List() { "tom", "lily", "luc" }; //返回一个泛型json数据
return Json>(list);
if (i == 4)
return Content(HttpStatusCode.OK, new { data = "abc" }); //向客户端返回http状态码和值(值可以是对象,也可以是其他类型)
if (i == 5)
return Content(HttpStatusCode.OK, "abc");//向客户端返回http状态码和指定类型的值
if (i == 6)
return StatusCode(HttpStatusCode.NotFound); //返回一个状态码 HttpStatusCode是一个枚举
if (i == 7)
return BadRequest("错误"); //向客户端返回400的http错误。
return NotFound();//NotFound()方法会返回一个404的错误到客户端。
//向客户端返回一个http响应的消息对象(比较精细化的控制返回消息)
public HttpResponseMessage Index()
HttpResponseMessage msg = new HttpResponseMessage();
msg.StatusCode = System.Net.HttpStatusCode.OK; //设置http状态码
msg.Content = new StringContent("内容哈哈哈哈");
msg.Headers.Add("UserName", "Tom");
msg.Headers.Age = TimeSpan.FromDays(2);
return msg;
public HttpResponseMessage Export()//导出的Excel文件输出到客户端浏览器
//取数据
var lstRes = OrderBLL.Export();
//向Excel里面填充数据
HSSFWorkbook workbook = new HSSFWorkbook();
CreateAndFillSheet(workbook, lstRes);
//保存到服务
var fileName = "Excel" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
var strPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Data\" + fileName);
using (FileStream fs = new FileStream(strPath, FileMode.Create))
workbook.Write(fs);
using (MemoryStream ms = new MemoryStream())
workbook.Write(ms);
//输出到浏览器
//将文件流保存在StreamContent对象里面,然后输出到浏览器。在浏览器端即可将Excel输出。
var stream = new FileStream(strPath, FileMode.Open);
HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
response.Content = new StreamContent(stream);
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
FileName = fileName
return response;
catch
return new HttpResponseMessage(HttpStatusCode.NoContent);
参考资料:C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解namespace WebApi.Controllers{ public class HomeController : ApiController { [HttpGet] public int GetByAge(string name) { ...
WEB
API
各请求类型对接方式text/plain
text/plain
ASP.NET
Web
API
的内容协商(
Content
Negotiation)机制的理想情况是这样的:客户端在请求头的Accept字段中指定什么样的MIME类型(响应头的中
Content
-Type),
Web
API
服务端就返回对应的MIME类型的内容。
而现实情况是,
Web
API
服务端能返回什么MIME类型的响应类...
Asp.Net
Web
API
服务函数的
返回值
主要可以分为void、普通对象、HttpResponseMessag、IHttpActionResult e四种,本文这里简单的介绍一下它们的区别。
一、返回void
返回void一般常用于Put和Delete函数。
public void Delete(int id) { }
当服务函数执行完成后,服务器端并不是啥...
"callerid": "1552267897663",
"license": "9425846d54cf4ff0b7d81dd6b922fa75",
"token": "095A1DA8106527EE81350845611AEEB3",
"ipaddr": ...
RESTful
API
的设计已经很成熟了,大家也都比较认可。本文也不再过多介绍RESTful
API
相关的知识,而是针对JSON型
API
的返回结果设计,总结下自己的经验。
先来看看返回结果的结构示例:
data : { // 请求数据,对象或数组均可
user_id: 123,
user_name: "tutuge",