ASP.NET Ok
最后修改于 2025 年 4 月 3 日
在本文中,我们将探讨 ASP.NET 8 中的 Ok 方法。该方法是从 Web API 控制器返回成功的 HTTP 200 响应的便捷方式。
ASP.NET 是一个跨平台、高性能的框架,用于构建现代 Web 应用程序。Ok 方法简化了使用数据返回成功响应的过程。
基本定义
ASP.NET 中的 Ok 方法是一个辅助方法,它创建一个 OkObjectResult 对象。此结果表示带有可选内容的 HTTP 200 OK 响应。
它通常在 Web API 控制器操作中使用,以指示操作成功。该方法可以包装任何应返回给客户端的对象。
Ok 是 ControllerBase 类的一部分, ControllerBase 是 Web API 控制器的基类。默认情况下,它会自动将响应对象序列化为 JSON。
ASP.NET Ok 示例
以下示例演示了 Web API 中 Ok 方法的各种用法。
Program.cs
var builder = WebApplication.CreateBuilder(args); builder.Services.AddControllers(); var app = builder.Build(); app.MapControllers(); app.Run();
这设置了一个基本的 ASP.NET 应用程序,并支持控制器。MapControllers 方法为控制器启用属性路由。
Controllers/UsersController.cs
using Microsoft.AspNetCore.Mvc;
[ApiController]
[Route("api/[controller]")]
public class UsersController : ControllerBase
{
private static List<User> _users = new()
{
new User(1, "John", "Doe", "john@example.com"),
new User(2, "Jane", "Smith", "jane@example.com"),
new User(3, "Bob", "Johnson", "bob@example.com")
};
[HttpGet]
public IActionResult GetAllUsers()
{
return Ok(_users);
}
[HttpGet("{id}")]
public IActionResult GetUserById(int id)
{
var user = _users.FirstOrDefault(u => u.Id == id);
if (user == null) return NotFound();
return Ok(user);
}
[HttpPost]
public IActionResult CreateUser([FromBody] User newUser)
{
newUser.Id = _users.Max(u => u.Id) + 1;
_users.Add(newUser);
return Ok(newUser);
}
[HttpGet("search")]
public IActionResult SearchUsers([FromQuery] string term)
{
var results = _users.Where(u =>
u.FirstName.Contains(term, StringComparison.OrdinalIgnoreCase) ||
u.LastName.Contains(term, StringComparison.OrdinalIgnoreCase) ||
u.Email.Contains(term, StringComparison.OrdinalIgnoreCase));
return Ok(new {
Count = results.Count(),
Results = results
});
}
}
public record User(int Id, string FirstName, string LastName, string Email);
此控制器演示了使用 Ok 方法的四种不同场景。第一个方法在访问基本路由 /api/users 时返回所有用户。
第二个方法按 ID 检索特定用户。第三个方法显示了在成功的 POST 操作后使用 Ok 返回创建的资源。
第四个方法演示了使用 Ok 返回复杂对象,包括搜索结果和计数。这表明 Ok 如何包装匿名类型。
ApiController 属性启用自动模型验证和其他 Web API 约定。所有方法都返回适当的 HTTP 状态码,其中 Ok 表示成功 (200)。
来源
在本文中,我们探讨了 ASP.NET 8 中的 Ok 方法。这个方便的辅助方法简化了从 Web API 端点返回成功响应的过程。