Tablet Tablet - 11 months ago 62
C# Question

ASP.NET MVC passing an ID in an ActionLink to the controller

I can't see to retrieve an ID I'm sending in a html.ActionLink in my controller, here is what I'm trying to do

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

public ActionResult Modify(string ID)

ViewData["Title"] =ID;
return View();

That's what a tutorial I followed recommended, but it's not working, it's also putting ?Length=5 at the end of the URL!

Thanks in advance!

edit: here is the route I'm using, it's default

"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults

it appears someone has downvoted the two suggestions below but not posted their solution!

Answer Source

Doesn't look like you are using the correct overload of ActionLink. Try this:-

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

This assumes your view is under the /Views/Villa folder. If not then I suspect you need:-

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