2012-07-10 12 views
13

Ho difficoltà a trovare il modo di verificare il tipo di contenuto della richiesta in ASP.NET Web Api. C'è un modo per controllare il tipo di contenuto della richiesta se è application/xml o application/json a livello di controller?Come verificare il tipo di contenuto della richiesta nell'API Web ASP.Net?

qualsiasi aiuto sarebbe apprezzato.

+2

Hai provato un regolare: Request.Content.Headers.ContentType? –

+0

sì ma mi sta dando un valore nullo tutto il tempo. Ho pensato che dovrebbe darmi tipo di contenuto, ma non si sta chiedendo a cosa serve questa proprietà? – user1186065

risposta

7

C'è un contesto in ogni controller: http://msdn.microsoft.com/en-us/library/system.web.mvc.controller.httpcontext.aspx

così si dovrebbe essere in grado di chiamare HttpContext.Request.ContentType.

+1

Così stupido sono. Stavo controllando la proprietà Request.Content.Headers. Dovrei usare la proprietà Request.Headers. Grazie Erica. – user1186065

+6

Si vuole davvero evitare l'uso di HttpContext poiché è presente solo per la compatibilità con il runtime di ASP.NET. Non funzionerà in self-host. Ogni controller ha una proprietà Request a cui è possibile accedere direttamente, quindi l'opzione HttpContext non è necessaria. –

+0

@DarrelMiller grazie - non me ne ero reso conto. La proprietà Request ha le stesse proprietà (Headers e ContentType) di HttpContext, quindi dovrebbe funzionare allo stesso modo. – Erica

Problemi correlati