gpt4 book ai didi

asp.net-mvc - asp.net mvc - ActionLink 的呈现不一致

转载 作者:行者123 更新时间:2023-12-03 00:24:56 25 4
gpt4 key购买 nike

我有一个 Controller ,它接受以下两种格式的 URL:

  • Network/AddOrEdit -> 在页面上呈现空白表单以添加新的网络对象
  • Network/AddOrEdit/[id] -> 使用预填充表单呈现页面以编辑网络对象ID 为 [id]

显然,每个实例中都使用相同的 View - 我的设计目标之一是使用相同的 View 来添加和编辑目的。

母版页包含一个指向添加页面的链接,如下所示:

@Html.ActionLink("Add", "AddOrEdit", "Network")

通常,这会正确呈现为 /Network/AddOrEdit

但是,当我位于编辑页面时(即当前 URL 的格式为 Network/AddOrEdit/[id]),添加链接会在末尾显示该 ID - 所以添加链接实际上指向编辑页面。这不是我想要的!

因此,出于某种原因,MVC 似乎允许查询字符串中的当前 ID 干扰 ActionLink 的呈现。

对此我能做些什么有什么建议吗? :(

最佳答案

你的猜测是对的。 MVC路由机制可以重用当前请求中的路由变量来生成传出路由数据。这就是为什么 id 参数是从当前请求填充的。生成链接时应明确指定id

@Html.ActionLink("Add", "AddOrEdit", "Network", new { id = String.Empty }, null)

当路由系统看到带有可选 id 参数的路由,以及带有 string.Empty 的路由值时,它会在结束

关于asp.net-mvc - asp.net mvc - ActionLink 的呈现不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7513933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com