मुझे निम्न त्रुटि होने पर त्रुटि मिलती है:सी # सत्र की जांच नहीं कर सकता है?
if(Session["value"] != null)
{
// code
}
मुझे जो त्रुटि मिलती है वह यह है:
ऑब्जेक्ट संदर्भ किसी ऑब्जेक्ट के उदाहरण पर सेट नहीं है।
यह क्यों है? मैं हमेशा इस तरह अपना सत्र जांचता हूं? मैं एमवीसी फ्रेमवर्क का उपयोग कर रहा हूं, क्या इसका इसके साथ कुछ संबंध है?
संपादित करें:
कोड नियंत्रक के निर्माता में है:
public class MyController : ControllerBase
{
private int mVar;
public MyController()
{
if (Session["value"] != null)
{
mVar= (int)Session["value"];
}
}
}
मैं जिस तरह से आप सत्र मान की जाँच के साथ यहां एक संभावित समस्या को देखते हैं।आपको इसे "var myvar = सत्र [" मान "] के रूप में होना चाहिए;" फिर जांचें कि क्या यह शून्य है और इसे वापस डाला गया है। सत्र की जांच करने और इसे कास्टिंग करने के बीच सत्र अमान्य होने की संभावना है। - बस सोचा था कि आपको पता होना चाहिए :) – TWith2Sugars
टिप के लिए Thnx :) – Martijn
आपको 'var myvar = सत्र ["मान"] की आवश्यकता नहीं है; अगर (myvar! = null) ... '' के रूप में (सत्र ["मान"]! = शून्य) 'ठीक काम करेगा। मैं 'सत्र ["मान"] 'दो बार प्राप्त करने के बारे में भी चिंता नहीं करता (एक बार के लिए! = शून्य और चर सेट करने के लिए) क्योंकि अनुकूलक को इसका ख्याल रखना चाहिए। नोट: आप [?? ऑपरेटर] (http://msdn.microsoft.com/en-us/library/ms173224.aspx) उपयोगी: 'mVar = (int) सत्र [" मान "] ?? 0; '। यह शून्य सत्र की समस्या को ठीक नहीं करेगा जो इस धागे के बारे में है (क्योंकि यह सत्र की जांच नहीं कर रहा है लेकिन सत्र से मूल्य)। – Trisped