正确的方法将位置标头添加到NancyFx中的响应

时间:2015-07-20 14:42:52

标签: c# rest nancy

我正在使用Nancy作为我的应用程序的休息后端。 目前,我已设法通过此hack向我的回复添加位置标题:

var headerUri = Request.Url.SiteBase + Request.Path + "/" + processedModel.Id.ToString();

Response response = new JsonResponse(processedModel,Response.Serializers.First(s => s.CanSerialize("application/json")));

response.Headers["Location"] = headerUri;

return response;

由于我也想只返回json结果,最佳解决方案是什么?

1 个答案:

答案 0 :(得分:9)

如果你只想返回JSON,你可以这样做:

return Response.AsJson(model);

如果您想重定向用户,可以执行以下操作:

return Response.AsRedirect("url");

如果您想将标题附加到JSON结果中,可以使用.WithHeader(...),如下所示:

return Response.AsJson(model).WithHeader("bananas", "are always yellow");

这是一个快速示例,其中我返回带有标题的图像:

return Response.FromStream(thumbStream, "image/png")
               .WithHeader("FileId", file.Id)
               .WithHeader("FileName", file.Name);