मैं समझने की कोशिश कर रहा हूं कि रूटएक्सस्टिंगफाइल कैसे काम करता है। इसलिए मैंने एक नया एमवीसी 3 इंटरनेट प्रोजेक्ट बनाया है (एमवीसी 4 वही तरीके से व्यवहार करता है) और एक HTMLPage.html फ़ाइल को मेरे प्रोजेक्ट के सामग्री फ़ोल्डर में डाल दिया है। अब मैं Global.asax फ़ाइल के पास गया और RegisterRoutes समारोह संपादित तो यह इस तरह दिखता है:एएसपी.नेट एमवीसी 3: रूटएक्सस्टिंगफाइल = सच का कोई प्रभाव नहीं पड़ता
public static void RegisterRoutes(RouteCollection routes)
{
routes.RouteExistingFiles = true; //Look for routes before looking if a static file exists
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new {controller = "Home", action = "Index", id = UrlParameter.Optional} // Parameter defaults
);
}
अब यह मुझे जब मैं एक स्थानीय होस्ट का अनुरोध कर रहा हूँ एक त्रुटि देना चाहिए: XXXX/सामग्री/HTMLPage.html चूंकि कोई "सामग्री" नियंत्रक नहीं है और अनुरोध निश्चित रूप से डिफ़ॉल्ट पैटर्न को हिट करता है। लेकिन इसके बजाय मैं अपना एचटीएमएल पेज देख रहा हूं। मैं यहाँ क्या गलत कर रहा हूँ?
अद्यतन: मुझे लगता है कि मुझे छोड़ना होगा। यहां तक कि अगर मैं इस तरह का मार्ग जोड़ रहा:
routes.MapRoute("", "Content/{*anything}", new {controller = "Home", action = "Index"});
यह अभी भी मुझे HTMLPage की सामग्री दिखाता है। जब मैं ~/content/HTMLPage जैसे यूआरएल का अनुरोध करता हूं तो मुझे इंडेक्स पेज अपेक्षित के रूप में मिल रहा है, लेकिन जब मैं .html या .txt जैसी फ़ाइल एक्स्टेंस्टियन जोड़ता हूं तो सामग्री दिखायी जाती है (या 404 त्रुटि अगर फ़ाइल मौजूद नहीं है)। यदि कोई इसे वीएस2012 में देख सकता है तो कृपया मुझे बताएं कि आपको क्या परिणाम मिल रहा है। धन्यवाद।
"{नियंत्रक}/{action}/{id}" पैटर्न के साथ डिफ़ॉल्ट मार्ग ~/Content/HTMLPage.html अनुरोध के लिए एक अच्छा उम्मीदवार जैसा दिखता है। तो एक मिलान मार्ग है। –
@ ऑलेक्ज़ेंडर कैप्लुन: यह केवल तभी मेल खाता है जब आपके पास वास्तव में "सामग्री" नामक नियंत्रक होता है और "HTMLPage.html" नामक उस नियंत्रक में एक क्रिया विधि होती है। – Guffa
यह समझदार लगता है, लेकिन अभी भी काम नहीं करता है। यहां मैंने अपने रजिस्टर रूट्स फ़ंक्शन के शीर्ष पर जो जोड़ा है, वह है: 'routes.MapRoute ( " ExactMatch ", " सामग्री/HTMLPage.html ", नया {नियंत्रक =" होम ", क्रिया =" इसके बारे में "}); '। अभी भी मुझे एचटीएमएल पेज की सामग्री दिखाता है। अनुलेख मैं समझता हूं कि इसे इस तरह काम करना चाहिए (मैनुअल कहता है कि इसे चाहिए) लेकिन ऐसा नहीं है कि मैं अनुमान लगा रहा हूं कि मैंने कुछ गलत किया है। मैं स्थानीय रूप से वीएस2012 और विंडोज 7 पर परीक्षण कर रहा हूं। –