2012-10-03 13 views
18

में मैं एक नियंत्रक 3 कार्यों के साथ Dashboard कहा जाता है: Summary, Details, और Status, जिनमें से कोई भी एक आईडी या किसी अन्य मापदंडों ले। नियंत्रक की कार्रवाई के लिए URL /Dashboard को नियंत्रक के रूप में /Dashboard/Summary करता है, लेकिन मैं मार्ग जोड़ने का सही तरीका नहीं समझ सकता। Global.asax.cs में, मैं निम्नलिखित है:सेट डिफ़ॉल्ट क्रिया (सूचकांक के बजाय) नियंत्रक के लिए ASP.NET MVC 3

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

routes.MapRoute(
    "/Dashboard", 
    "Dashboard", 
    new { controller = "Dashboard", action = "Summary" } 
    ); 

दूसरे भाग के लिए, मैं भी कोशिश की है:

routes.MapRoute(
    "/Dashboard", 
    "{controller}", 
    new { controller = "Dashboard", action = "Summary" } 
    ); 

और

routes.MapRoute(
    "/Dashboard", 
    "{controller}", 
    new { action = "Summary" } 
    ); 

लेकिन जब करने की कोशिश कर मैं हमेशा एक 404 मिलता है /Dashboard का उपयोग करें। मुझे पूरा यकीन है कि मुझे MapRoute पर पैरामीटर के प्रारूप के बारे में कुछ याद आ रहा है, लेकिन मुझे नहीं पता कि यह क्या है ...

उत्तर

29

डिफ़ॉल्ट मार्ग के सामने अपने डैशबोर्ड मार्ग ले जाएँ:

routes.MapRoute(
    "Dashboard", 
    "Dashboard/{action}", 
    new { controller = "Dashboard", action = "Summary" } 
); 

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

मार्गों में से सब कुछ बदल जाता है। साथ ही, Dashboard मार्ग में किए गए परिवर्तनों को नोटिस करें। पहला पैरामीटर मार्ग का नाम है। दूसरा यूआरएल है, जो Dashboard से शुरू होने वाले यूआरएल से मेल खाता है, और आपके Dashboard नियंत्रक में अन्य कार्यों की अनुमति देता है। जैसा कि आप देख सकते हैं, यह Summary कार्रवाई के लिए डिफ़ॉल्ट होगा।

4

आपको अंतिम "डिफ़ॉल्ट" पकड़-आखिरी मार्ग घोषित करने की आवश्यकता है।

0

किसी भी नियंत्रक asp.net के लिए यह सामान्य सेट करें कार्रवाई:

routes.MapRoute("Dashboard", "{controller}/{action}", 
defaults: new { controller = "Dashboard", action = "Summary" });