2010-01-11 44 views
5

我有一個動作以兩個的GUID:ASP.NET MVC,兩條GUID的

public class MyActionController : Controller 
{ 
    //... 

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

我想下面的URI映射到行動:

/myaction/movetotab/1/2 

... 1對應的將param1和2分配給param2。

這條路線是什麼樣子的,是否可以使用Guid類型將參數映射到參數?

回答

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

檢查你的PARAMS ...我認爲第二個應該是param2而不是param1。 – 2010-01-11 16:41:05

+0

謝謝,它應該是param2 – 2010-01-11 16:43:41

+0

這是否工作,因爲Guid在其構造函數重載之一中將一個字符串作爲參數,或者MVC框架是否將來自URL的傳入字符串轉換爲Guid?這個過程是否適用於任何物體? – 2010-01-11 19:28:46

3

你可以在你的兩個GUID的字符串,並將其轉換爲實際的GUID使用GUID對象接受字符串值的構造函數。使用eu-ge-ne提供的路線。

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