Bazı kullanıcı verilerini eylem filtresine alıyorum ve bu verilerin bir kısmını bir denetleyicinin eyleminde kullanabilirim, ancak bir filtreden bir denetleyiciye veri iletmeyi tam olarak bilmiyorum. MVC'de büyük olasılıkla oturum veya HttpContext.Items kullanıyorum, ancak web API'sinde mevcut değil. Başka bir seçenek ThreadStatic kullanmaktır, ama daha iyi bir çözüm olmalı diye düşünüyorum?WebApi: durumu filtreden denetleyiciye nasıl geçirebilirim?
23
A
cevap
46
Bunu yapmak için Request.Properties
sözlüğünü kullanabilirsiniz. filtresinde
MyType myObject = //initialize from somwhere
actionContext.Request.Properties.Add("mykey", myObject);
Ve sonra kontrolöre geri alabilirsiniz:
object myObject;
Request.Properties.TryGetValue("mykey", out myObject);
//cast to MyType
Bu yaklaşımın avantajı mevcut istek örneği Web API her yerde kullanılabilir olmasıdır boru hattı, böylece bu nesneye erişebilirsiniz, örneğin Formatter veya MessageHandler'da.
İlgili konular
- 1. Alfresco Filtreden Kullanıcı Oluşturma
- 2. WebAPI
- 3. WebAPI
- 4. WebApi
- 5. WebApi,
- 6. WebApi
- 7. WebApi
- 8. Bayrakları LLVM geçişine nasıl geçirebilirim?
- 9. R değişkenini sqldf'ye nasıl geçirebilirim?
- 10. Bir parametreyi Action'da nasıl geçirebilirim?
- 11. ASP.NET MVC'de Html.Action() işlevini kullanarak bir eyleme parametreleri nasıl geçirebilirim?
- 12. Windows Service'ten WebAPI nasıl çağırılır
- 13. ASP.NET MVC'siz WebAPI nasıl kullanılır?
- 14. Morfolojik Havza İşaretleyicilerden filtreden geçirme ITK'ye göre
- 15. ZF2, ZF2 denetleyiciye
- 16. Reaktif WebAPI
- 17. WebAPI: RouteAttribute
- 18. Eclipse: Kaynakları filtreden geçirirken bir hata oluştu
- 19. Filtreden sonra SlickGrid Satır Kimliği değişir
- 20. Arama Sonuçlarının Filtreden Çıkarılması Arama Sonuçlarında
- 21. Rails Modülünde filtreden önce/sonra eklenebilir mi?
- 22. takvim_date_select değeri denetleyiciye
- 23. Django queryset'te filtreden daha az veya eşit nasıl yapılır?
- 24. Yeni bir kayıt oluştururken, bazı alanları filtreden değerlerle nasıl doldurabilirim?
- 25. Spring MVC: Dosya yolunu denetleyiciye nasıl alabilirim?
- 26. Facebook düğmesinin belirli bir denetleyiciye nasıl yönlendirileceği
- 27. Saf html formunu denetleyiciye nasıl bağlarım? C#
- 28. Ajax'ten denetleyiciye veri özniteliği nasıl alınır?
- 29. AngularJS: Angularjs'de görünümden denetleyiciye veri nasıl geçirilir
- 30. MVVM'deki denetleyiciler, Viewmodel'den denetleyiciye nasıl bilgi edinilir?
İsteğim nesnesinde Özellikler yok, yalnızca Params. Bir fark var mı? Ve doğrudan filterContext içinde değil, filterContext.HttpContext içinde yok. –
daha sonra MVC filtresiyle ilgilenmiyorsunuz Web API filtresi - ilk önce ASP.NET MVC boruhattı ile kullanılır ve system.web.mvc üyeleridir, ikincisi ise ASP.NET Web API boru hattı ile birlikte kullanılır ve sisteme üyedir .web.http. Onları karıştırmayın, onlar farklı bileşenler –
Ah, benim hatam. –