【问题标题】:Why does Url.Action("ActionName") produce an argument at the end of the generated URL?为什么 Url.Action("ActionName") 在生成的 URL 的末尾产生一个参数?
【发布时间】:2011-07-06 08:10:42
【问题描述】:

在部分视图中,我使用Url.Action 为如下操作生成 URL:

<form id="MyForm" action="<%= Url.Action("Edit") %>">

我原以为它会为我生成/MyController/Edit,但它却生成了/MyController/Edit/123,其中123 是一个ID。那是被调用来呈现这个局部视图的 URL。

我的问题是,它如何生成呈现页面的 URL,而不是我期望的 URL?如何生成我期望的 URL,即/MyController/Edit

谢谢!

【问题讨论】:

  • 您是否有 2 个操作在该控制器上接受名称为 Edit 的 get 请求?我不确定,但我可以看到它变得混乱,尤其是默认路由是 /controller/action/id
  • 是的,我愿意。一个是Edit(id) 对应GET,另一个是Edit(Model) 对应POST
  • @William,当前Model是在你使用Action()重载时传入的,它有123代表id。参照。 @nathan 说了什么。

标签: asp.net-mvc asp.net-mvc-2 url view


【解决方案1】:

看看this question我刚才问过。在那里你可以找到一些关于匹配路由时在某些情况下保留先前值的问题的详细讨论

【讨论】:

  • 这个问题还没有解决,有点烦人... :(
  • 是的,甚至在 mvc-3 中也没有。看看哈立德的答案,它看起来很有希望,但还没有尝试过
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-26
  • 1970-01-01
  • 2010-11-30
  • 1970-01-01
  • 2020-05-26
  • 1970-01-01
相关资源
最近更新 更多