2010-01-21 19 views
52

में छवियों और robots.txt पर "आईकंट्रोलर लागू नहीं किया गया" त्रुटि मिल रही है। मुझे लगता है कि मुझे लगता है कि प्रत्येक फ़ाइल लेकिन .aspx फ़ाइलों के लिए मेरे वेबसर्वर पर एक अजीब त्रुटि हो रही है।मुझे एमवीसी 2

यहाँ एक उदाहरण है। बस किसी भी .jpg नाम या .gif या जो कुछ भी साथ '/robots.txt' की जगह ले और आप अनुमान लगा सकेंगे कि:

पथ '/robots.txt' के लिए नियंत्रक नहीं मिला था या लागू नहीं करता है आईकंट्रोलर।

मुझे यकीन है कि मैंने रूटिंग कैसे सेट अप किया है, लेकिन मुझे यकीन नहीं है कि मुझे इसके बारे में क्या करने की ज़रूरत है।

इसके अलावा, यह एक मिश्रित एमवीसी और वेबफॉर्म साइट है, यदि इससे कोई फर्क पड़ता है।

+0

क्या आप कस्टम 'IControllerFactory' का उपयोग कर रहे हैं? –

+0

क्या होगा यदि आप एक IControllerFactory का उपयोग कर रहे हैं, तो क्या @ DanielA.WhiteZ? – Zac

+0

स्थिर फ़ाइलों के लिए हैंडलर के साथ एक समस्या की तरह लगता है। बस केह रहा हू। –

उत्तर

72

आप अपने रूटिंग में robots.txt और सभी एएसपीएक्स पृष्ठों को अनदेखा कर सकते हैं।

routes.IgnoreRoute("{*allaspx}", new {[email protected]".*\.aspx(/.*)?"}); 
routes.IgnoreRoute("{*robotstxt}", new {[email protected]"(.*/)?robots.txt(/.*)?"}); 

आप फेविकॉन को भी अनदेखा करना चाहेंगे।

routes.IgnoreRoute("{*favicon}", new {[email protected]"(.*/)?favicon.ico(/.*)?"}); 

आप पथ को बाहर करने के लिए नियमित अभिव्यक्ति समायोजित कर सकते हैं।

source से हॅक किया गया।

+0

मुझे यह समाधान पसंद है, यह बेकार है कि मुझे प्रत्येक फ़ाइल प्रकार के लिए एक जोड़ना होगा। .jpg, .png, .gif, .swf, .pdf, आदि इत्यादि –

+0

@ ब्लेश - क्या आप एक कस्टम 'IControllerFactory' का उपयोग कर रहे हैं? –

+0

नहीं ... लेकिन इसमें देखकर, मुझे लगता है कि मैं शुरू कर सकता हूं। तुमने क्यों पूछा? –

2

मैं another solution भी मिला ... जबकि मुझे नहीं लगता कि मैं इसे इस्तेमाल करेंगे है, यह जवाब में यहाँ दिखा लायक है:

निम्नलिखित (सिद्धांत में) एक के साथ कुछ भी करने के लिए नियंत्रकों की तलाश में अनदेखा कर देना चाहिए '।' इस में।

routes.MapRoute(
    "Default",            // Route name 
    "{controller}/{action}/{id}",       // URL with parameters 
    new { controller = "Home", action = "Index", id = "" }, // Parameter defaults 
    new { controller = @"[^\.]*" }       // Parameter contraints. 
); 
2

आप अभी भी है:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

... अपने Global.asax.cs में?

एमवीसी इसे डिफ़ॉल्ट रूप से वहां रखता है, और इसे संभालना माना जाता है।

यदि आप ऐसा करते हैं, तो समस्या यह हो सकती है कि आप एमवीसी और वेबफॉर्म को कैसे मिश्रित कर रहे हैं।

+2

और सुनिश्चित करें कि यह शीर्ष पर है! – Martin

+0

मेरे पास यह है ... लेकिन यह 'मार्गों से नीचे है। अनदेखा मार्ग (" {संसाधन} .aspx/{* pathInfo} "); क्या यह एक मुद्दा है? –

+0

कोई समस्या नहीं होनी चाहिए। –

6

यह त्रुटि तब भी हो सकती है जब आपके क्षेत्र में किसी दृश्य के अंदर, आप Html.Action सहायक का उपयोग करते हैं। यह सहायक हमेशा क्षेत्र को प्रीपेन्ड के रूप में उपयोग करेगा, जब तक कि आप इसे विशेष रूप से नहीं बताते। जैसे,

@Html.Action("Main", "Navigation", new { area = string.Empty }) 
+0

आपके उत्तर ने @ Html.Action – irfandar

15

मार्ग की उपेक्षा ऊपर दिए गए मेरे लिए काम नहीं किया है, लेकिन मैं एक ऐसी ही एक ऐसा ही किया पाया:

routes.IgnoreRoute("{*staticfile}", new { staticfile = @".*\.(css|js|gif|jpg)(/.*)?" }); 
0

मैं संसाधन है कि अस्तित्व में नहीं था अनुरोध कर जब मैं इस त्रुटि का सामना किया।

विशेष रूप से, मैं एक कस्टम आईई सीएसएस फ़ाइल का अनुरोध किया गया था:

<!--[if lt IE 8]>@Styles.Render("~/Content/ie7.css")<![endif]-->

(ये condition comments हैं, आईई द्वारा व्याख्या)

हालांकि, वास्तविक संसाधन पर ~/अस्तित्व में सामग्री/यानी/ie7.css।

तो, रूटिंग में किसी भी संशोधन के बिना, संसाधन के सही यूआरएल का उपयोग करके त्रुटि हल हो गई थी।

+1

से संबंधित मेरी एक और समस्या हल की जिज्ञासा से, यदि आप किसी सर्वर पक्ष @ ब्राउज़र में ब्राउज़र संस्करण का पता लगा सकते हैं और केवल अतिरिक्त शैलियों को प्रस्तुत नहीं करते हैं तो हालत टिप्पणियों से परेशान क्यों हैं? – mikeschuld

+0

अच्छा, वास्तव में मैंने कभी परेशान नहीं किया। सीएसएस और अधिकांश मार्क-अप एक टीम साथी का काम था। मुझे लगता है कि यह सब कुछ नियंत्रण में रखने के लिए फ्रंट एंड डिजाइनर की इच्छा का परिणाम है। आपकी टिप्पणी से ट्रिगर, मैंने बस [एमएसडीएन - सशर्त टिप्पणियों के बारे में] (https://msdn.microsoft.com/en-us/library/ms537512%28v=vs.85%29.aspx) पर पढ़ा है कि समर्थन गिरा दिया गया है आईई 10 मानक मोड में, इसलिए, हमें इसे देखना होगा। –

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