ASP.NET core webapi返回数据类型 _平台:windows (4)

版权声明:版权声明:本文为博主原创文章,转载请附上博文链接! 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" };
        }
    }
}

访问后的结果(都是):

访问后的结果

猜你喜欢

转载自blog.csdn.net/qq_36051316/article/details/85059893