2013-04-05 10 views
12

में नियंत्रक नाम के साथ और बिना रूटिंग मैं एएसपी.नेट एमवीसी 4 का उपयोग कर रहा हूं और मुझे अपने मार्गों में कुछ समस्याएं हैं। तुम मेरी कैसे इस प्रकार के कार्यों के लिए यूआरएल बात करने के लिए मेरी रूट सेट करने में बता सकते हैं:एएसपी.नेट एमवीसी 4

  • "/" (या "/ प्रारंभ") => PublicController.Start()
  • "/ के बारे में" => PublicController.About()
  • "/ MyPage" (या "/ MyPage/सारांश") => MyPageController.Summary()
  • "/ MyPage/चालान" => MyPageController.Invoices()
  • "/ MyPage/चालान/72 "=> MyPageController.Invoice (int id)

यह यूआरएल "/ के बारे में" है जो मेरे लिए चीजों को गड़बड़ कर देता है, यानी एक यूआरएल जो नियंत्रक निर्दिष्ट नहीं करता है। अगर मैं इसे एक काम करता हूं जो दूसरों को नियंत्रक निर्दिष्ट करता है तो काम करना बंद कर देता है। मैं बस "/ के बारे में" के लिए एक अलग नियंत्रक बना सकता हूं, लेकिन मुझे नहीं लगता कि मुझे ऐसा नहीं करना पड़ेगा (मेरे पास उस पैटर्न के बाद और यूआरएल हैं)।

उत्तर

28

यह करना चाहिए:

routes.MapRoute(
    name: "About", 
    url: "About", 
    defaults: new { controller = "Public", action = "About" } 
); 

routes.MapRoute(
    name: "MyPageSummary", 
    url: "MyPage", 
    defaults: new { controller = "MyPage", action = "Summary" } 
); 

routes.MapRoute(
    name: "Default", 
    url: "{controller}/{action}/{id}", 
    defaults: new { controller = "Public", action = "Start", id = UrlParameter.Optional } 
); 
संबंधित मुद्दे