Sto prelevando alcuni dati utente nel filtro azione, e potrei usare alcuni di quei dati nell'azione di un controller, ma non esattamente sicuro come passare i dati da un filtro a un controller. In MVC probabilmente userei la sessione o HttpContext.Items, ma non è disponibile in web API. Un'altra opzione è usare ThreadStatic, ma penso che ci sia una soluzione migliore?WebApi: come passare lo stato dal filtro al controller?
23
A
risposta
46
È possibile utilizzare il dizionario Request.Properties
per farlo.
Nel filtro:
MyType myObject = //initialize from somwhere
actionContext.Request.Properties.Add("mykey", myObject);
E poi è possibile recuperarlo nel controller:
object myObject;
Request.Properties.TryGetValue("mykey", out myObject);
//cast to MyType
Il vantaggio di questo approccio è che l'istanza richiesta di corrente è disponibile in tutto il Web API pipeline, in modo da poter accedere a questo oggetto, ad esempio nel Formatter o MessageHandler.
Problemi correlati
- 1. Come passare variabili dal controller al MVC vista joomla
- 2. Come passare il parametro dal controller al layout in YII2
- 3. Come passare il contenuto in risposta dal filtro Eccezione in Asp.net WebAPI?
- 4. Come passare un intero ViewModel al controller
- 5. OverAcking WebApi e controller
- 6. AngularJS: passando params dal controller al servizio
- 7. asp.net webapi: come passare i parametri opzionali?
- 8. Passare i parametri dalla vista al controller
- 9. Come cambiare dinamicamente lo stato predefinito utilizzato dal router?
- 10. Testing WebAPI controller Url.Link
- 11. Come passare i valori dal controller per visualizzare in asp.net?
- 12. Come aggiungere registrazione al MVC4 WebAPI
- 13. WebAPI 2 attributo di routing abilitare lo stato della sessione
- 14. Passare le date dalla vista al controller mvc/C#
- 15. Come passare l'elenco dal controller alla vista in MVC 3.
- 16. Come passare semplici dati dal controller per visualizzare in cakePHP
- 17. AngularJS: come passare valori dal metodo Controller a servizio?
- 18. Leggere HttpContent nel controller WebApi
- 19. È buona norma passare lo stato come sostegno ai bambini?
- 20. Come passare un oggetto JSON complesso al controller ASP.net
- 21. Come passare gli elementi selezionati dell'elenco multiselect al controller?
- 22. Controller WebApi utilizzando una libreria di classi
- 23. Transizione del controller di visualizzazione interattiva dal controller di visualizzazione con barra di stato nascosta
- 24. Come posso chiamare un metodo WebApi dal metodo di azione del controller MVC?
- 25. ASP.NET WebAPI: controller generico per endpoint OData
- 26. Come passare parametri resi dal backend al metodo bootstrap angular2
- 27. passare i dati tra i controller
- 28. Passaggio del contesto della chiamata logica dalla pipeline OWIN al controller WebApi
- 29. Url.Action con percorsi WebAPI e del controller
- 30. passare le variabili dal controller per visualizzare in Yii
L'oggetto My Request non ha Proprietà, solo Params. C'è una differenza? E non esiste direttamente all'interno di filterContext, ma in filterContext.HttpContext. –
quindi si ha a che fare con il filtro MVC non con il filtro API Web: i primi vengono utilizzati con la pipeline ASP.NET MVC e sono membri di system.web.mvc, mentre i secondi vengono utilizzati con la pipeline dell'API Web ASP.NET e sono membri del sistema .web.http. Non confonderli, sono componenti diversi –
Ah, errore mio. –