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

苏阿加

在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中实现相同的目的?

丹尼尔·JG

您可以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类用于指定内容类型的报头。(它进行了一些验证,并具有用于添加额外的参数(例如字符集)的API)

因此,相同的操作如下所示:

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在ASP.NET 5 MVC中访问缓存?

身份如何在ASP .NET MVC 5中工作

如何在ASP.NET MVC 4和MVC 5中设置默认控制器

如何在ASP.NET MVC 5控制器中的http中返回字符串?

如何在 ASP.NET MVC5 中的视图模型中进行字符串“不喜欢”验证?

如何在Asp.net Core MVC(又名Asp.Net 5 RC1)中检查响应cookie?

如何在asp.net mvc 5中获取文件的内容类型

如何在ASP.NET 5 MVC6中的布局文件中获取会话值

如何在ASP.NET 5 / MVC 6中的单元测试中访问HttpContext

ASP .NET MVC 5 - 如何在 Ajax.ActionLink 中添加表单模型?

如何在ASP.Net MVC 5中保存父表的同时添加子表?

如何在ASP .NET MVC 5中为AspNetUser创建SecurityStamp

如何在ASP.NET MVC 5中创建全局常量变量

如何在ASP.NET MVC5中创建动态角色

如何在ASP.NET 5 MVC 6(vNext)中定义身份的密码规则?

如何在ASP.NET MVC 5中通过ActionLink传递包含连字符的routeValue

如何在Asp.Net 5(MVC 6)中使用Entity Framework 6.x

如何在ASP.NET 5(MVC 6)中使生成的路由小写?

如何在ASP.NET MVC5中编辑.cshtml文件

如何在 ASP.NET MVC5 中列出从最新到最旧的帖子

如何在ASP.Net MVC 5的AspNetUsers表中获取ApplicationUser的数量?

如何在VS 2015中自定义ASP.NET MVC 5支架?

如何在ASP.NET MVC 5中注册自定义主体类型?

如何在asp.net MVC5中显示锁定结束时间

如何在ASP.NET MVC 5 Razor数据库中更新表

如何在ASP.NET MVC5中打开模态

如何在ASP.NET MVC 5中使用带有razor语法的jquery?

如何在ASP.Net MVC 5中显示错误验证摘要标题

如何在ASP.net MVC 5中限制对控制器操作的访问