gpt4 book ai didi

c# - 如何在 ASP.NET 5/MVC 6 中创建响应消息并向其添加内容字符串

转载 作者:IT王子 更新时间:2023-10-29 04:42:45 25 4
gpt4 key购买 nike

在 web api 2 中,我们过去常常这样做以获得带有字符串内容的响应:

var response = Request.CreateResponse(HttpStatusCode.Ok);
response.Content = new StringContent("<my json result>", Encoding.UTF8, "application/json");

如何在不使用任何内置类(如 ObjectResult)的情况下在 ASP.NET 5/MVC 6 中实现相同的目标?

最佳答案

您可以直接写入 Response.Body 流(因为 Body 是一个普通的旧 System.IO.Stream)和手动设置内容类型:

public async Task ContentAction()
{
var jsonString = "{\"foo\":1,\"bar\":false}";
byte[] data = Encoding.UTF8.GetBytes(jsonString);
Response.ContentType = "application/json";
await Response.Body.WriteAsync(data, 0, data.Length);
}

您可以使用 Microsoft.AspNet.Http 中的一些实用程序来避免一些麻烦:

  • 扩展方法WriteAsync用于将字符串内容写入响应正文。
  • MediaTypeHeaderValue用于指定内容类型 header 的类。 (它进行一些验证并有一个 API 用于添加额外的参数,如字符集)

所以同样的 Action 看起来像:

public async Task ContentAction()
{
var jsonString = "{\"foo\":1,\"bar\":false}";
Response.ContentType = new MediaTypeHeaderValue("application/json").ToString();
await Response.WriteAsync(jsonString, Encoding.UTF8);
}

如有疑问,您可以随时查看 ContentResult 的实现和/或 JsonResult .

关于c# - 如何在 ASP.NET 5/MVC 6 中创建响应消息并向其添加内容字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33178983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com