2015-07-20 11 views
6

Uso Nancy come back-end per la mia applicazione. Attualmente sono riuscito a aggiungere posizione di testa per le mie risposte con questo hack:Modo corretto per aggiungere l'intestazione della posizione alle risposte in NancyFx

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; 

Come Voglio anche per restituire solo i risultati JSON, quale sarebbe la soluzione migliore?

risposta

8

Se si desidera solo tornare JSON si può fare:

return Response.AsJson(model); 

Se si desidera reindirizzare l'utente si può fare:

return Response.AsRedirect("url"); 

Se si desidera aggiungere intestazioni per il vostro risultato JSON è possibile utilizzare .WithHeader(...) in questo modo:

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

Ecco un rapido esempio in cui torno un'immagine w con intestazioni:

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