This is for a project I’m doing in the university. We’re using ASP.NET MVC2 to build a mini-prototype of a website just to show what we can do.
Now, I have a controller called ItemController.cs, a view Item/Index.aspx, a model Item.cs and a ViewModel ViewItems.cs. I use the ViewModel to pass information to the view from the controller. My question is – how do I call a controller method with parameters? Currently, I use
Html.ActionLink("View Event Items", "Index", "Item")
which points to ItemController‘s Index() method. Say I want it to take an int parameter (Index(int eventId)) How would I write the ActionLink to pass the parameter to it?
Also, if I have any errors in how I think this stuff works, please feel free to point them out.
You’ll need to use the routevalues object (or RouteValuesDictionary) to pass values to your action.
In your example it would look like this:
…where 2 is your event id. The second empty object (new {}) is for html attributes. Nate’s answer is close, but I don’t think there is an overload that takes a routevalues object as the second parameter.