2010-11-03 18 views
6

क्या मैं एक मार्ग स्थापित कर सकता हूं जो रूट-स्तर यूआरएल से मैप किया जाएगा?एएसपी.नेट एमवीसी रूटिंग - "खाली" मार्ग

http://localhost:49658/

मैं VS2010 अंतर्निहित वेब सर्वर का उपयोग कर रहा हूँ।

एक खाली या एक एकल स्लेश URL स्ट्रिंग के साथ एक मार्ग स्थापित करने के लिए काम नहीं करता है प्रयास कर रहा है:

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

यह त्रुटि में परिणाम है "मार्ग URL के साथ एक '/' या 'शुरू नहीं कर सकते ~ 'चरित्र और इसमें'? 'नहीं हो सकता चरित्र। "। अग्रिम में धन्यवाद! मेरी पूरी मार्ग परिभाषा यहां है:

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

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

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

हमें अपने अन्य मार्ग दिखाएं, मुझे ऊपर की तरह एक समस्या थी (और XSaint32 के उत्तर पर आपके नोट्स), मेरा डिफ़ॉल्ट मार्ग 404 में हुआ जब तक कि मैंने नियंत्रक/क्रिया निर्दिष्ट नहीं की और यह एक खराब नामित मार्ग के कारण था मेरे मार्गों में eslewhere – Jimmy

उत्तर

8

आप यहां क्या हासिल करने की कोशिश कर रहे हैं ... ऐसा यूआरएल ऐसा दिखता है? http://www.acme.com/? क्योंकि यदि आप हैं, तो डिफ़ॉल्ट मार्ग प्राप्त होगा कि जब कोई भी पैरामीटर निर्दिष्ट नहीं किया जाता है।

// Default Route: 
routes.MapRoute(
    "Default", // Route name 
    "{controller}/{action}/{id}", // URL with parameters 
    new { controller = "Home", action = "Index", id = String.Empty } // Parameter defaults 
); 
+0

आप सही हैं, वह यूआरएल है जिसे मैं प्राप्त करने की कोशिश कर रहा हूं। मेरे पास पहले से ही एक मार्ग है जैसा आपने निर्दिष्ट किया है। । । लेकिन जब मैं अपनी परियोजना F5 करता हूं और यह डिफ़ॉल्ट यूआरएल हिट करता है तो मुझे एक HTTP 404 ("संसाधन नहीं मिला") त्रुटि मिलती है, इसलिए ऐसा लगता है कि मुझे किसी भी तरह से "खाली यूआरएल" केस को विशेष रूप से संभालना था। – blaster

+0

@blaster - इसे एक शॉट दें। देखें कि यह आपके लिए काम करता है या नहीं। – dotariel

+0

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

4

का उपयोग ASPNET MVC5: RouteConfig.cs फ़ाइल:

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
    routes.MapRoute(
     name: "Homepage", 
     url: "", 
     defaults: new { controller = "Content", action = "Index" } 
    ); 
    routes.MapRoute(
     name: "foo", 
     url: "bar", 
     defaults: new { controller = "Content", action = "Index" } 
    ); 
    routes.MapMvcAttributeRoutes(); 

    routes.MapRoute(
     name: "Default", 
     url: "{controller}/{action}/{title}", 
     defaults: new { controller = "Content", action = "Details", title = UrlParameter.Optional } 
    ); 
} 

प्लस:
आप की तरह अपने आप किसी अन्य रूट करने के लिए अपने मुखपृष्ठ रीडायरेक्ट करने के लिए, चाहता है "http://www.yoursite.com/" से " http://www.yoursite.com/bar ", बस विधि का प्रयोग करें रीडायरेक्ट टॉउट():

public class ContentController : Controller 
    { 
     public ActionResult Index() 
     { 
      return RedirectToRoute("foo"); 
     } 
    } 
संबंधित मुद्दे