ActionLink包含URL中的当前{id}

时间:2012-06-08 20:09:16

标签: c# asp.net-mvc routing

我浏览器中当前显示的页面为:http://localhost:19255/Object/Browse/1

此页面上的链接是使用以下内容创建的:@Html.ActionLink("...", "Browse", "Object")

但生成的链接实际上是:/Object/Browse/1

我对正在发生的事情的理解是MVC看到我的路线有{id}部分,我没有提供。所以它继续并包含当前页面的{id}部分。

足够公平,但如何在没有链接的情况下创建链接?我尝试了nullnew { id = null },但都没有效果。

2 个答案:

答案 0 :(得分:3)

虽然以下都不起作用:

@Html.ActionLink("...", "Browse", "Object", null)              // Has no effect
@Html.ActionLink("...", "Browse", "Object", new { id = null }) // Error

以下解决了这个问题:

@Html.ActionLink("...", "Browse", "Object", new { id = "" })   // No ID is passed

答案 1 :(得分:0)

我相信MVC会直接从模型中提取此Id,因为您没有指定它。我以前见过这个,但我现在没有时间来验证它。

在渲染该链接之前尝试覆盖@Model.Id以查看它是否来自哪里。然后,我认为,您可以在新变量中存储Id值,以备需要时设置@ Model.Id = null。有点黑客...当然:))