我浏览器中当前显示的页面为:http://localhost:19255/Object/Browse/1
。
此页面上的链接是使用以下内容创建的:@Html.ActionLink("...", "Browse", "Object")
但生成的链接实际上是:/Object/Browse/1
我对正在发生的事情的理解是MVC看到我的路线有{id}部分,我没有提供。所以它继续并包含当前页面的{id}部分。
足够公平,但如何在没有链接的情况下创建链接?我尝试了null
和new { id = null }
,但都没有效果。
答案 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。有点黑客...当然:))