1. 程式人生 > >ASP.NET core webapi返回資料型別 _平臺:windows (4)

ASP.NET core webapi返回資料型別 _平臺:windows (4)

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" };
        }
    }
}

訪問後的結果(都是):

訪問後的結果