在NancyFx中添加位置标题的正确方法

本文关键字:方法 标题 位置 NancyFx 添加 | 更新日期: 2023-09-27 18:03:49

我使用Nancy作为我的应用程序的rest后端。目前,我已经设法添加位置头到我的响应与这个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结果,什么是最好的解决方案?

在NancyFx中添加位置标题的正确方法

如果你只想返回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);