2012-05-06 13 views
38

मैं एएसपी.नेट एमवीसी में Url.Content() विधि से प्राप्त लाभ (ओं) को समझ नहीं पा रहा हूं। उदाहरण के लिए, आप src='@Url.Content("~/Contents/Scripts/jQuery.js")' देखते हैं। मुझे क्यों इसका उपयोग करना चाहिए? इसका उपयोग करने के लिए कौन से कारण मौजूद हो सकते हैं? src='/scripts/jquery.js जैसे सादे पुराने सरल संदर्भों का उपयोग करने पर लाभ, फायदे आदि क्या हैं?मुझे @ url.Content ("~/blah-blah-blah") का उपयोग क्यों करना चाहिए?

अद्यतन: उत्तर के आधार पर, मैं जानना चाहता हूं कि इसका उपयोग करने के लिए कोई अन्य कारण है, वर्चुअल फ़ोल्डर्स को संभालने के अलावा? क्योंकि मैंने वर्चुअल एप्लिकेशन का उपयोग करके बहुत कुछ नहीं देखा है (जो निश्चित रूप से इसका मतलब यह नहीं है कि इसका इतना उपयोग नहीं किया गया है)।

+1

आपने कभी भी एक ही वेबसाइट –

+0

के तहत कई अनुप्रयोग मौजूद नहीं किए हैं, क्या यही कारण है कि वे '@ url.Content' का उपयोग करते हैं? यदि हां, तो क्या हम इसे एक-आवेदन प्रति वेबसाइट समाधान पर उपयोग कर सकते हैं? –

+1

देर से उत्तर के लिए खेद है - इसे हमेशा शामिल करना सबसे अच्छा है। आप कभी नहीं जानते कि भविष्य में साइट संरचना कैसे बदल सकती है। तकनीकी रूप से यद्यपि यदि आप _never_ अपने स्थान और उसके प्रति एक ऐप प्रति वेबसाइट के साथ कोई वर्चुअल निर्देशिका नहीं बदलते हैं, तो सुनिश्चित करें कि आप केवल src = '/ scripts/whatever.js' –

उत्तर

26

आभासी पथ मैपिंग यह एकमात्र उद्देश्य है। यदि आपको कभी भी उन्हें मानचित्र बनाने की आवश्यकता नहीं है और सुनिश्चित हैं कि आपका ऐप या यह फ़ोल्डर्स अन्य ऐप्स के अंतर्गत नहीं बैठेगा तो यह आपको किसी भी उद्देश्य की सेवा नहीं करेगा।

डॉक्स से ध्यान दें कि यदि आप उपयोग नहीं करते ~ आप वैसे भी परिणाम में कोई परिवर्तन नहीं मिलती है: " टिप्पणियां उल्लिखित सामग्री पथ टिल्ड (~) वर्ण से प्रारंभ नहीं होता है, तो इस विधि का रिटर्न अपरिवर्तित contentPath। "

+0

धन्यवाद @AdamTupliper। तब मैं बस इस विधि को अपने टूलबॉक्स से छोड़ देता हूं;)। –

+7

यह भी ध्यान दें कि एमवीसी 4 में इनमें से कुछ को स्वचालित रूप से संभाला जाता है, उदाहरण के लिए एक स्क्रिप्ट टैग आप केवल src = "~/scripts/whatever.js" निर्दिष्ट कर सकते हैं और रेज़र स्वचालित रूप से url.content के उपयोग के बिना आपके लिए इसे मानचित्र बना देगा –

16

यह उपयोगी है अगर आपके अनुप्रयोग रूट पथ आपके सर्वर का रूट पथ नहीं है। Url.Content ("~ /") आपके एप्लिकेशन के रूट फ़ोल्डर को देता है।

+0

का उपयोग कर सकते हैं, मुझे कभी भी यह समस्या नहीं मिली है। लेकिन +1। –

+0

जो मैं अनुभव कर रहा हूं उससे। जब आप विजुअल स्टूडियो में लिंक पर होवर करते हैं तो '~' का उपयोग करके कोई छवि सामग्री नहीं दिखाती है। कहते हैं [पथ] का पता नहीं लगा सका। –

32

आमतौर पर, आपका वेब एप्लिकेशन इस प्रकार प्रकाशित होता है: www.yoursite.com/। ~ चरित्र साइट की जड़ से मेल खाता है /।

हालांकि, यदि आप अपनी साइट को वर्चुअल निर्देशिका www.yoursite.com/mywebapp/ के साथ प्रकाशित करते हैं, तो ~ वर्ण "/ mywebapp /" से मेल खाता है। "/" चरित्र के साथ हार्ड-कोडिंग यूआरएल गलत पृष्ठ संदर्भों का कारण बनेंगे।

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