2010-08-25 13 views
6

मैं एक एमवीसी परियोजना में काम कर रहा हूं, और इन दोनों का उपयोग किया है। मैं सोच रहा था कि उनके बीच क्या अंतर है? क्या दूसरे पर एक का उपयोग करना गलत है? मेरी समझ यह है कि मुझे Url.Content() का उपयोग करना चाहिए, लेकिन VirtualPathUtility.ToAbsolute() भी काम कर रहा है।वर्चुअलपाथ यूटिलिटी। टोब्सोल्यूट() वीएस। Url.Content()

उत्तर

7

Url.Content() एमवीसी का एक उपयोगिता विधि हिस्सा है। मुझे लगता है कि उपयोगिता वर्गों को एकजुट और केंद्रीकृत करने के लिए वहाँ होने के नाते।

VirtualPathUtility.ToAbsolute() एक .NET Framework विधि है। हो सकता है कि MVC भी इसे उपयोग कर रहा है, हम के लिए होता है स्रोत की जांच करने के ...

आशा में मदद करता है

+2

Url.Content() अंततः वर्चुअलपाथ उपयोगिता को कॉल करता है लेकिन यह काफी कुछ करता है। मैं आपका जवाब संपादित करूंगा लेकिन मुझे कोड से भरा बाल्टी पोस्ट करना होगा। ;) – jfar

+0

स्पष्टीकरण jfar के लिए धन्यवाद! –

1

आप एक नियंत्रक के भीतर इस रूपांतरण कर रहे हैं, तो मैं VirtualParthUtility.ToAbsolute() से अधिक के पक्ष में था Url.Content()।

लाभ तब आता है जब आप नियंत्रक कार्यों का परीक्षण करना चाहते हैं। हालांकि इसे सीधे कॉल करने के बजाय, मैं एक इंटरफ़ेस IPathUtilities परिभाषित करता हूं, कहता हूं, लाइव साइट के लिए वर्चुअलपाथ उपयोगिता विधियों का उपयोग करके एक कार्यान्वयन के साथ, और परीक्षण करते समय किसी अन्य प्रकार के नकली का उपयोग करके।

यदि आप वर्चुअलपैथ उपयोगिता को सीधे कॉल करते हैं, तो आप एक्शन विधि का परीक्षण नहीं कर पाएंगे (आपने सोचा होगा कि एचटीपीकॉन्टेक्स्ट के कुछ चालाक मजाक इस दौर में आ जाएंगे, लेकिन इसे स्वयं करने की कोशिश करने के लिए मुझे कोई रास्ता नहीं मिला कर दो)।

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