2012-06-27 28 views
6

में सत्र का उपयोग कैसे करें मॉडल से सत्र तक मैं कैसे पहुंच सकता हूं?मॉडल asp.net mvc

मैं इस्तेमाल करने की कोशिश:

public IQueryable<EstudentsViewModel> GetEstudentsProjected(decimal? Code) 
     { 
      . 
      . 
      . 
      decimal id; 
      id = (decimal)Session["Consul"]; 
      . 
      . 
      . 
     } 

प्रकट होता है: नाम 'सत्र' वर्तमान संदर्भ

+0

आप यहां क्या करने की कोशिश कर रहे हैं? सत्र में इस मूल्य को शुरू करने के लिए आप इस मूल्य को क्यों संग्रहीत कर रहे हैं? मुझे लगता है कि यदि आप उन सवालों के जवाब प्रदान करते हैं, तो आपको एक बेहतर विकल्प दिया जाएगा जो आपको ऐसा करने से रोक देगा। –

उत्तर

23

मैं कैसे मॉडल से सत्र के लिए उपयोग कर सकते हैं में मौजूद नहीं है?

तुम हमेशा निम्नलिखित अश्लील साहित्य प्रदर्शन कर सकता है:

HttpContext.Current.Session["Consul"] 

लेकिन ओह, कृपया मेरी पवित्र धरती कृपया, वादा मुझे इस तरह के अपराध प्रदर्शन कभी नहीं करने के लिए।

एक मॉडल को कभी नहीं पता होना चाहिए कि सत्र क्या है। एक सत्र एक वेब शब्द है और मॉडल पूरी तरह से अज्ञेयवादी होना चाहिए। आपको उस सूचना को पास करना चाहिए जिसे मॉडल को नियंत्रक से आवश्यक है जिसके पास सत्र तक पहुंच है।

तो इसे देखें:

public IQueryable<EstudentsViewModel> GetEstudentsProjected(decimal? Code, decimal id) 
{ 
    ... 
} 

और जब नियंत्रक से इस पद्धति लागू आप बस क्योंकि नियंत्रक यह तक पहुँच गया है सत्र से मूल्य पारित करेंगे।

+1

मुझे पता है कि यह बहुत पुरानी पोस्ट है, लेकिन क्या हम ISessionManager को पैरामीटर के रूप में पास नहीं कर सकते? ISessionManager HttpContext.Current.Session ऑब्जेक्ट के आस-पास सिर्फ एक रैपर इंटरफ़ेस है। –