📜  ASP.NET Core-操作结果(1)

📅  最后修改于: 2023-12-03 15:13:31.904000             🧑  作者: Mango

ASP.NET Core-操作结果

ASP.NET Core是一个高性能、跨平台的Web开发框架。操作结果是ASP.NET Core中一种返回Action结果的方式,它可以返回字符串、JSON、文件或者视图,以便客户端根据不同的需求做出不同的处理。

操作结果类型

ASP.NET Core中定义了以下几种操作结果类型:

字符串结果

返回一段字符串给客户端,可以用来返回错误信息或者成功信息等。

public IActionResult HelloWorld()
{
    return Content("Hello world!");
}
JSON结果

返回一段JSON字符串给客户端,可以用来返回数据对象。

public IActionResult GetPerson()
{
    var person = new { Name = "张三", Age = 18 };
    return Json(person);
}
文件结果

返回一个文件给客户端,可以用来下载文件或者打开文件。

public IActionResult DownloadFile()
{
    var filePath = @"C:\test.txt";
    var fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
    return File(fileStream, "application/octet-stream", Path.GetFileName(filePath));
}
视图结果

返回一个视图给客户端,可以用来渲染页面。

public IActionResult Index()
{
    return View();
}
操作结果特性

ASP.NET Core中还定义了一些操作结果特性,可以用来快捷地返回一些常见的结果。

ProduceResponseType

ProduceResponseType特性指定了Action的返回类型,并且可以指定返回类型的编码格式。

[HttpGet]
[ProducesResponseType(StatusCodes.Status200OK)]
public IActionResult GetPerson()
{
    var person = new { Name = "张三", Age = 18 };
    return Ok(person);
}
HttpStatusCodeResult

HttpStatusCodeResult特性用来返回指定的HTTP状态码、原因短语和描述。

[HttpPost]
[ValidateAntiForgeryToken]
[ProducesResponseType(StatusCodes.Status201Created)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
public IActionResult CreatePerson(Person person)
{
    if (ModelState.IsValid)
    {
        //创建Person对象

        return CreatedAtAction("GetPerson", new { id = person.Id }, person);
    }

    return BadRequest(ModelState);
}
总结

操作结果是ASP.NET Core中一种返回Action结果的方式,它可以返回字符串、JSON、文件或者视图,以便客户端根据不同的需求做出不同的处理。操作结果还有许多特性,可以用来快捷地返回一些常见的结果。