2010-03-22 21 views
11

मूल पृष्ठ से पृष्ठ का वर्तमान उदाहरण एक्सेस करें - क्या यह ASP.NET में एक स्थिर वर्ग से वर्तमान Page तक पहुंच बनाना संभव है?एक स्थिर वर्ग

मैं नहीं सोच रहा हूं, क्योंकि Google कोई परिणाम नहीं बदलता है।

+0

संबंधित प्रश्न: https://stackoverflow.com/q/58123/1475331। –

उत्तर

25

तकनीकी रूप से आप अनुरोध के लिए वर्तमान IHttpHandler प्राप्त कर सकते हैं। चूंकि Page लागू करता है, तो आप यह देखने के लिए जांच सकते हैं कि यह एक है या नहीं।

var page = HttpContext.Current.CurrentHandler as Page; 

if(page != null){ 
    // Do something with page 
} 
7

आप HttpContext.CurrentHandler का उपयोग अनुरोध के लिए वर्तमान HttpHandler वापस जाने के लिए कर सकते हैं। एक पृष्ठ वर्ग बस एक जटिल प्रकार का हैट्प हैंडलर है।

हालांकि पृष्ठ गुणों से संबंधित किसी भी चीज़ तक पहुंचने के लिए, आपको Page टाइप करने के लिए परिणाम डालना होगा।

ईमानदारी से हालांकि, यदि संभव हो तो मैं जेफ का दृष्टिकोण लेता हूं, क्योंकि विधि कॉल में पृष्ठ संदर्भ इंजेक्शन करके, आपकी विधि अधिक परीक्षण योग्य है (भरोसेमंद नहीं है, क्योंकि आप सीधे पृष्ठ का उपयोग कर सकते हैं)। HttpContext के साथ कुछ भी करने पर निर्भर करते हुए आपका कोड अवांछनीय बना देता है। शायद आप ऐसी परिस्थिति में हैं जहां आप इस तरह की विधि तैयार नहीं कर सकते हैं, लेकिन यह वही तरीका होगा जिसे मैं करना पसंद करूंगा।

+0

सहमत हैं, मुझे एक मजबूत संदेह है कि httpcontext एक गड़बड़ी है जब यह थ्रेडिंग के साथ आता है। – maxp

2

स्थिर पृष्ठ में कॉल करने वाली विधि के पैरामीटर के रूप में वर्तमान पृष्ठ को पारित करने का सबसे आसान तरीका है।

+0

हाँ शायद 'साफ-सुथरा', शर्मिंदा होने के बारे में 5 विधि कॉल गहरी ... – maxp

+0

यक! HttpContext.Current तब तक है, जब तक आपको रिफैक्टर करने का मौका न मिले। –

संबंधित मुद्दे