版权声明:版权声明:本文为博主原创文章,转载请附上博文链接! https://blog.csdn.net/qq_36051316/article/details/85059893
ASP.NET core webapi 返回数据类型 _平台:windows (4)
我们经常会发现前端大部分时候请求接口后,返回的数据都是json。那么我们看看后面的api是如何写的。
首先我们以默认创建的那个控制器(ValuesController)为参考物:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
namespace mynetcorewebapi.Controllers
{
[RouteAttribute("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
{
// GET api/values
[HttpGet]
public ActionResult<IEnumerable<string>> Get()
{
return new string[] { "value1", "value2" };
}
// GET api/values/5
[HttpGet("{id}")]
public ActionResult<string> Get(int id)
{
return "value";
}
// POST api/values
[HttpPost]
public void Post([FromBody] string value)
{
}
// PUT api/values/5
[HttpPut("{id}")]
public void Put(int id, [FromBody] string value)
{
}
// DELETE api/values/5
[HttpDelete("{id}")]
public void Delete(int id)
{
}
}
}
我们发现上面代码中的 ActionResult<IEnumerable> 这个返回值是一个 字符串泛型集合
如果我们不想每次都限定类型可以写成 ActionResult
如果想继续少些点代码,直接写 object 也是可以的,那么简化后就是这样的
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
namespace mynetcorewebapi.Controllers
{
[ApiController]
public class ValuesController : ControllerBase
{
[RouteAttribute("api/values/get")]
[HttpGet]
public ActionResult<object> Get()
{
return new string[] { "value1", "value2" };
}
}
}
还有这样:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
namespace mynetcorewebapi.Controllers
{
[ApiController]
public class ValuesController : ControllerBase
{
[RouteAttribute("api/values/get")]
[HttpGet]
public object Get()
{
return new string[] { "value1", "value2" };
}
}
}
访问后的结果(都是):