我正在使用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;
Run Code Online (Sandbox Code Playgroud)
因为我也想只返回json结果,最好的解决方案是什么?
Phi*_*ill 10
如果您只想返回JSON,您可以执行以下操作:
return Response.AsJson(model);
Run Code Online (Sandbox Code Playgroud)
如果要重定向用户,可以执行以下操作:
return Response.AsRedirect("url");
Run Code Online (Sandbox Code Playgroud)
如果要将标题附加到JSON结果,可以这样使用.WithHeader(...)
:
return Response.AsJson(model).WithHeader("bananas", "are always yellow");
Run Code Online (Sandbox Code Playgroud)
这是一个快速示例,我返回带有标题的图像:
return Response.FromStream(thumbStream, "image/png")
.WithHeader("FileId", file.Id)
.WithHeader("FileName", file.Name);
Run Code Online (Sandbox Code Playgroud)