2011-12-02 75 views
2

我正在使用名爲「Home」的默認控制器。MVC String in ActionResult

我有以下的ActionResult:

public ActionResult SetID(string ID) 
{ 
    int? result = MyGateway.GetAccountByID(ID); 
    Common.IDNum = result; 
    return View("Index","Home"); 
} 

我想傳遞的IDNumber,如:

http://localhost:3314/Home/SetID/AA3420 

......而不是像...

http://localhost:3314/Home/SetID?ID=AA3420 

上面的鏈接開始由返回列表的視圖生成。要選擇一條記錄,他們點擊上面鏈接的「選擇」。我目前正在將「AA3420」設置爲位於其他位置名爲Common.cs的CS文件中的會話變量。

我怎樣才能讓我的網址看起來像:http://localhost:3314/Home/SetID/AA3420

回答

3

通過註冊在Global.asax中的Application_Start以下路線:

var routes = RouteTable.Routes; 

routes.MapRoute(
      "ID Action", // Route name 
      "{controller}/{action}/{id}", // URL with parameters 
      new {controller = "Home", action = "SetID", ID = ""} // Parameter defaults 
      ); 
+0

非常感謝BobTodd。那就是訣竅。我知道它與Routes有關係,但不知道如何正確地做到這一點。我現在知道了。非常感謝你的方式。 – Turp

0

看着你的Global.asax。在那裏你定義了一個默認路由和一個默認參數。 想要這樣:

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