2011-09-28 18 views
5

मेरे पास एक नया नया एएसपीएनटी एमवीसी 3 प्रोजेक्ट है। मैंने किसी भी तरह से मार्गों को संशोधित नहीं किया। मेरे पास PageController नामक एक नियंत्रक है और दूसरा नियंत्रक ContentController पर कॉल करता है।एएसपी.नेट एमवीसी 3 में क्यों डिफ़ॉल्ट मार्ग "कंट्रोल कंट्रोलर" नामक नियंत्रक के लिए काम नहीं कर रहा है?

जब मैं डोमेन.com/ पेज पर ब्राउज़ करता हूं तो पेज नियंत्रक पर इंडेक्स एक्शन अपेक्षित के रूप में निष्पादित हो जाता है और इंडेक्स व्यू प्रदर्शित करता है।

जब मैं domain.com/Content पर ब्राउज़ करता हूं तो मुझे 404 त्रुटि मिलती है। यदि मैं domain.com/Content/Index पर ब्राउज़ करता हूं तो यह ठीक काम करता है।

मैं इस एकल मार्ग का निवारण कैसे करूं?

public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     routes.MapRoute(
      "Default", // Route name 
      "{controller}/{action}/{id}", // URL with parameters 
      new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
     ); 
    } 

मैं एक अतिरिक्त मार्ग को जोड़ने की कोशिश की:

public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     routes.MapRoute(
      "Default", // Route name 
      "{controller}/{action}/{id}", // URL with parameters 
      new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
     ); 
     routes.MapRoute(
      "Content", // Route name 
      "Content/{action}/{id}", // URL with parameters 
      new { controller = "Content", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
     ); 

    } 

लेकिन अतिरिक्त मार्ग आवेदन के व्यवहार नहीं बदला।

इसका कारण क्या हो सकता है?

+0

बस स्पष्ट करने के लिए, आप 'ContentController' –

+0

@MatthewAbbott के लिए कोड जोड़ सकते हैं - यह सब मचान के माध्यम से जेनरेट होता है। मैं नाथन के जवाब को लागू करके इस मुद्दे को हल करने में सक्षम था। – quakkels

उत्तर

11

इसकी वजह यह है कि सामग्री नामक एक भौतिक फ़ोल्डर है। भौतिक फ़ोल्डर के समान नाम वाले नियंत्रक होने पर शायद आपकी वेबसाइट पर कुछ प्रतिकूल प्रभाव पड़ेगा।

+0

हू ... यह समझ में आता है। मैं नियंत्रक का नाम बदलने की कोशिश करूंगा। – quakkels

+0

धन्यवाद ... इतना आसान है। – quakkels

+0

बस के लिए दीवार के खिलाफ मेरे सिर को टक्कर देने के बाद बस इसमें भाग गया, जवाब के लिए धन्यवाद! – Wil

0

कोशिश जोड़ने अपने मार्ग परिभाषाओं के लिए निम्न:

routes.RouteExistingFiles = true; 
+0

क्या उसे फिर अपनी वास्तविक सामग्री फ़ाइलों के लिए मार्ग स्थापित करने या मार्गों को अनदेखा नहीं करना होगा? –

+0

मैं betcha यह काम करेगा। लेकिन, मुझे लगता है कि रूट समस्या @nathangonzalez द्वारा उल्लिखित है। – quakkels

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