我正在使用ASP.Net MVC。这里是我的代码片段从命名课程控制器:当构建URL时,URL.Action包含id
public ActionResult List(int id)
{
var viewmodel.ShowUrl = Url.Action("Show", "Course");
...
}
public ActionResult Show(int id)
{
...
}
viewmodel.ShowUrl拿起任何值是“ID”参数。所以viewmodel.ShowUrl变成“/ Course/Show/151”(id的值是151);我希望能够根据用户交互设置客户端上的ID部分。我希望viewmodel.ShowUrl的值为“/ Course/Show”。
这对我来说似乎是一个错误。我不告诉Url.Action包含一个id值。它是靠它自己做的。如果我想设置id值,那么我会做这样的事情:
var viewmodel.ShowUrl = Url.Action("Show", "Course", new {id = somevalue});
那么,你如何防止MVC添加id值?我可以将viewmodel.ShowUrl硬编码为“/ Course/Show”,但这似乎是一个非常糟糕的解决方案。谢谢。
我不能确切地remeber但'Routedata'是'ViewData',这就是为什么它的通过。我认为你可以在'ViewData'对象上做'Url.Action(“Show”,“Course”,new {});'或者清空'RouteData'。 – 2013-08-12 17:15:46