原文地址:https://www.strathweb.com/2018/10/convert-null-valued-results-to-404-in-asp-net-core-mvc/
作者: Filip W.
译者: Lamond Lu
.NET Core MVC在如何返回操作结果方面非常灵活的。
你可以返回一个实现IActionResult
接口的对象, 比如我们熟知的ViewResult, FileResult, ContentResult等。
[HttpGet]
public IActionResult SayGood()
{
return Content("Good!");
}
当然你还可以直接返回一个类的实例。
[HttpGet]
public string HelloWorld()
{
return "Hello World";
}
在.NET Core 2.1中, 你还可以返回一个ActionResult
的泛型对象。
[HttpGet]
public ActionResult<IEnumerable<string>> Get()
{
return new string[] { "value1", "value2" };
}
今天的博客中,我们将一起看一下.NET Core Mvc是如何返回一个空值对象的,以及如何改变.NET Core Mvc针对空值对象结果的默认行为。
.NET Core Mvc针对空值对象的默认处理行为
那么当我们在Action中返回null时, 结果是什么样的呢?
下面我们新建一个ASP.NET Core WebApi项目,并添加一个BookController
, 其代码如下:
[Route("api/[controller]")]
[ApiController]
public class BookController : ControllerBase
{
private readonly List<Book> _books = new List<Book> {
new Book(1, "CLR via C#"),
new Book(2, ".NET Core Programming")
};
[HttpGet("{id}")]
public IActionResult GetById(int id)
{
var item = _books.FirstOrDefault(p => p.BookId == id);
return Ok(item);