2010-01-11 12 views
5

ASP.NET MVC Yönlendirme iki Guıd'lerini:İki Guıd'lerini alarak bir eylem var

public class MyActionController : Controller 
{ 
    //... 

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

Ben eyleme eşleştirmek için aşağıdaki URI istiyorum: ile

/myaction/movetotab/1/2 

... 1 tekabül param1 ve 2'ye param2.

Rota neye benzeyecek ve argümanları Guid türünde parametrelere eşlemek mümkün mü?

cevap

7

Evet, System.Guid

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

veya

Parametrelerinizi eşleştirmek mümkündür
routes.MapRoute(
    "MoveToTab2", 
    "myaction/movetotab/{param1}/{param2}", 
    new { controller = "MyAction", action = "MoveToTab", 
     param1 = System.Guid.Empty, param2 = System.Guid.Empty } 
); 
+0

Paramlarınızı kontrol edin ... Ikinci olanın param2 olması gerekmiyor param1. –

+0

Teşekkürler, bu param2 olmalı –

+0

Bu, Guid, kurucunun aşırı yüklenmelerinden birinde bir dizeyi parametre olarak aldığından veya MVC çerçevesinin gelen dizeyi URL'den Guid'e aldığından işe yarar mı? Bu işlem herhangi bir nesne için işe yarayacak mı? –

3

Sen dizeleri olarak iki Guıd'lerinin almak ve GUID kullanarak nesnelerin gerçek GUID çevirebiliriz string değeri kabul eden kurucu. Verilen eu-ge-ne yolunu kullanın.

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); 
    }