2010-01-11 11 views
5

मैं एक कार्य दो GUIDs लेने है:ASP.NET MVC रूटिंग दो GUIDs

public class MyActionController : Controller 
{ 
    //... 

    public ActionResult MoveToTab(Guid param1, Guid param2) 
    { 
    //... 
    } 
} 

मैं निम्नलिखित यूआरआई चाहते हैं कार्रवाई करने के लिए मैप करने के लिए:

/myaction/movetotab/1/2 

... के साथ 1 इसी param1 और 2 पर param2 के लिए।

मार्ग कैसा दिखता है, और क्या यह एक प्रकार के ग्रिड के साथ पैरामीटर के तर्कों को मैप करना संभव है?

उत्तर

7

हाँ, यह System.Guid

routes.MapRoute(
    "MoveToTab", 
    "{controller}/{action}/{param1}/{param2}", 
    new { controller = "MyAction", action = "MoveToTab", 
     param1 = System.Guid.Empty, param2 = System.Guid.Empty } 
); 

या

करने के लिए अपने मानकों को मैप करने के लिए संभव है
routes.MapRoute(
    "MoveToTab2", 
    "myaction/movetotab/{param1}/{param2}", 
    new { controller = "MyAction", action = "MoveToTab", 
     param1 = System.Guid.Empty, param2 = System.Guid.Empty } 
); 
+0

अपने पैराम की जांच करें ... मुझे लगता है कि दूसरा दूसरा param2 param2 होना चाहिए। –

+0

धन्यवाद, यह param2 –

+0

होना चाहिए क्या यह काम करता है क्योंकि गुइड अपने कन्स्ट्रक्टर ओवरलोड में पैरामीटर के रूप में एक स्ट्रिंग लेता है, या क्या एमवीसी फ्रेमवर्क यूआरएल से आने वाली स्ट्रिंग को ग्रिड में डालता है? क्या यह प्रक्रिया किसी ऑब्जेक्ट के लिए काम करेगी? –

3

आप तारों के रूप में अपने दो GUIDs में ले जा सकते हैं, और उन्हें वास्तविक GUID में बदलने का GUID का उपयोग कर वस्तुओं कन्स्ट्रक्टर जो एक स्ट्रिंग मान स्वीकार करता है। यूयू-जी-एन प्रदान किए गए मार्ग का प्रयोग करें।

routes.MapRoute(
    "MoveToTab", 
    "myaction/movetotab/{param1}/{param2}", 
    new { controller = "MyAction", action = "MoveToTab", param1 = "", param2 = "" } 
); 

    public ActionResult MoveToTab(string param1, string param2) 
    { 
    Guid guid1 = new Guid(param1); 
    Guid guid2 = new Guid(param2); 
    }