ActionLink包含URL中的当前{id}
我浏览器中当前显示的页面是: http://localhost:19255/Object/Browse/1
。
此页面上的链接创建时使用: @Html.ActionLink("...", "Browse", "Object")
但生成的链接实际上是: /Object/Browse/1
我对正在发生的事情的理解是MVC看到我的路线有{id}部分,我没有提供。 所以它继续并包含当前页面的{id}部分。
很公平,但如何在没有它的情况下创建链接? 我尝试了null
, new { id = null }
但是都没有用。
虽然以下都不起作用:
@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
我相信MVC会直接从模型中提取此ID,因为您没有指定它。 我以前见过这个,但我现在没有时间来validation它。
在渲染该链接之前尝试覆盖@Model.Id
以查看它是否来自何处。 然后,我认为,如果需要,你可以在一个新变量中存储Id值,并设置@ Model.Id = null。 一种黑客…当然:)