我无法在我的控制器中找到我在html.ActionLink中发送的ID,这是我正在尝试做的事情
<li>
<%= Html.ActionLink("Modify Villa", "Modify", "Villa", new { @id = "1" })%></li>
public ActionResult Modify(string ID)
{
ViewData["Title"] =ID;
return View();
}
这就是我所遵循的教程,但它不起作用,它也会在URL的末尾加上长度= 5!
提前致谢!
编辑:这是我正在使用的路线,它是默认的
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
似乎有人对以下两条建议进行了投票,但没有公布他们的解决方案!
答案 0 :(得分:197)
看起来你没有使用正确的ActionLink重载。试试这个: -
<%=Html.ActionLink("Modify Villa", "Modify", new {id = "1"})%>
这假设您的视图位于/ Views / Villa文件夹下。如果没有,那么我怀疑你需要: -
<%=Html.ActionLink("Modify Villa", "Modify", "Villa", new {id = "1"}, null)%>
答案 1 :(得分:24)
在MVC 4中,您可以通过
从一个视图链接到另一个传递Id或主键的控制器@Html.ActionLink("Select", "Create", "StudentApplication", new { id=item.PersonId }, null)
答案 2 :(得分:11)
不要在@之前放置@
new { id = "1" }
当参数/路径
不匹配时,框架会“翻译”它?答案 3 :(得分:3)
在MVC 5上非常相似
@Html.ActionLink("LinkText", "ActionName", new { id = "id" })
答案 4 :(得分:1)
ID也可以在前面使用@
符号,但我们必须在此之后添加一个参数。那是null
看起来像:
@Html.ActionLink("Label Name", "Name_Of_Page_To_Redirect", "Controller", new {@id="Id_Value"}, null)