ASP.NET MVC将ActionLink中的ID传递给控制器

我看不到要检索我在控制器中的html.ActionLink发送的ID,这是我正在尝试的

<li> <%= Html.ActionLink("Modify Villa", "Modify", "Villa", new { @id = "1" })%></li> public ActionResult Modify(string ID) { ViewData["Title"] =ID; return View(); } 

这是我遵循的一个教程推荐的,但它不工作,它也把?长度= 5在URL的末尾!

提前致谢!

编辑:这里是我使用的路线,它是默认的

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

它似乎有人已经downvoted下面的两个build议,但没有公布他们的解决scheme!

看起来好像你正在使用ActionLink的正确超载。 尝试这个:-

 <%=Html.ActionLink("Modify Villa", "Modify", new {id = "1"})%> 

这假定您的视图在/ Views / Villa文件夹下。 如果不是那么我怀疑你需要: –

 <%=Html.ActionLink("Modify Villa", "Modify", "Villa", new {id = "1"}, null)%> 

在MVC 4中,您可以将一个视图链接到另一个通过Id或主键的控制器

 @Html.ActionLink("Select", "Create", "StudentApplication", new { id=item.PersonId }, null) 

不要把ID放在ID之前

 new { id = "1" } 

当参数/路线不匹配时,框架将其“翻译”为长度

在MVC 5是非常相似的

 @Html.ActionLink("LinkText", "ActionName", new { id = "id" }) 

ID也可以在前面用@符号,但是之后我们必须添加一个参数。 那是null

看起来像:

 @Html.ActionLink("Label Name", "Name_Of_Page_To_Redirect", "Controller", new {@id="Id_Value"}, null)