2011-06-26 149 views
7

在像http://mysite.com/controller/action/123/name-of-article這樣的URL中,是否有一種方法可以定義路由,以便將'123 /物品名稱'部分作爲字符串傳入?用斜線定義ASP.NET MVC路由

回答

13

你可以做一個通配符路線:

MapRoute("{controller}/{action}/{*id}") 
0

我不知道你的要求是什麼,但是你確定你想通過文章向控制器的名稱?如果只是傳遞ID,然後從數據庫中做SELECT來獲得名稱,你會更好嗎?

如果你仍然想有一個URL像http://mysite.com/controller/action/123/name-of-article 但只有在ID傳給你可以使用路由這樣

routes.MapRoute(
       "MyNewRoute",   // Route name 
       "articles/edit/{id}/{name}",  // URL 
       new { controller = "Articles", action = "Edit", id = "" }, // Defaults 
       new[] { "YourApp.UI.Controllers" }      // Namespaces 
      ); 

那麼你的控制器動作

public ActionResult Edit(int id) 
{ 

}