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)