Web API 控制器通常应派生自 ControllerBase 而不是 Controller。 Controller 派生自 ControllerBase,并添加对视图的支持,因此它用于处理 Web 页面,而不是 Web API 请求。 如果同一控制器必须支持视图和 Web API,则派生自 Controller。
API接口返回值类型:https://learn.microsoft.com/zh-cn/dotnet/api/microsoft.aspnetcore.mvc?view=aspnetcore-7.0
示例:
using Microsoft.AspNetCore.Mvc; using NetCoreWebApiTest.Common; namespace NetCoreWebApiTest.Controllers { [ApiController] [Route("[controller]")] public class TestController : ControllerBase { //日志 private readonly ILogger<TestController> _logger; public TestController(ILogger<TestController> logger) { _logger = logger; } /// <summary> /// /Test/Index /// </summary> /// <returns></returns> [HttpGet] public JsonResult Index() { _logger.LogInformation("/Test/Index " + DateTime.Now.ToString()); ApiResult<string> result = new ApiResult<string>() { Data = "123456", ErrorCode = "0", Message = "success" }; return new JsonResult(result); } } }