I'm using ASP.Net MVC. Here's my code snippets from a controller named Course:
public ActionResult List(int id)
{
var viewmodel.ShowUrl = Url.Action("Show", "Course");
...
}
public ActionResult Show(int id)
{
...
}
viewmodel.ShowUrl picks up whatever the value is of the "id" parameter. So viewmodel.ShowUrl becomes "/Course/Show/151" (value of id is 151); I want to be able to set the id part on the client based on user interaction. I want the value of viewmodel.ShowUrl to be "/Course/Show".
This seems like a bug to me. I'm not telling Url.Action to include an id value. It's doing it on its own. If I want to set the id value then I would do something like this:
var viewmodel.ShowUrl = Url.Action("Show", "Course", new {id = somevalue});
So, how do you prevent MVC from adding the id value? I can hardcode viewmodel.ShowUrl to "/Course/Show" but that seems to be a kludgy solution. Thanks.
Routedata
is onViewData
and that's why it's passed. I think you can doUrl.Action("Show", "Course", new {});
or empty theRouteData
onViewData
object. – Abigael