2012-08-03 22 views
0

我有內部的Global.asax如何使用MapRoute,使用ActionLink()?

routes.MapRoute( 「默認」 這個路徑的值,//路線名稱 「{控制器}/{行動} /(編號)」,//使用參數URL new {controller =「Home」,action =「Index」,id = UrlParameter.Optional} //參數默認值 );

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

,我用這個方法ActionLink的調用編輯路線

@Html.ActionLink("Edit", "Topic", "Edit", new { id = item.ID }) 

現在生成的鏈接的結果是這樣的...

http://localhost:777/Admin/Topic?Length=4 

如何使用正確使用ActionLink方法的路線和目標。

謝謝!

回答

3

使用的ActionLink正確的過載,以獲得預期的結果

@Html.ActionLink("Edit", "Topic", "Edit", new { id = item.ID }, null) 

超載是ActionLink(string linkText, string actionName, string controllerName, object routeValues, object htmlAttributes)

添加null爲空HTML屬性是必要的,當你提供參數的動作。或者,如果您確實需要將HTML屬性應用到鏈接,您可以使用:

@Html.ActionLink("Edit", "Topic", "Edit", new { id = item.ID }, new { @class = "MyCustomCssClassName" }) 
+0

Html.RouteLink()要好得多。 – Ryan 2012-08-07 15:30:57