我的浏览器中当前显示的页面是: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,因为您没有指定它。我以前见过这个,但目前我没有时间验证它。
在呈现该链接之前尝试覆盖@Model.Id
,以查看它是否来自哪里。然后,我认为,您可以在需要时将 Id 值存储在新变量中并设置 @Model.Id = null。有点黑客...当然:)