2011-12-02 95 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 
);