我正在开发ASP.NET MVC应用程序,并且遇到了奇怪的事情。

我有两个这样的控制器动作: 通用标签

首先,我调用Review操作,将null作为参数,这将打开一个包含项目列表的网页。这些项目将链接回设置了ID的第一个“审核”操作。

将ID提供给审阅操作后,将返回此项目的编辑网页。在进行一些更改后单击“提交”时,我们将进行第二次“审核”操作(发布)。此处将保存该项目。

到目前为止一切都很好。

现在,在上一次“查看”操作(发布)中,我在结尾处获得了以下代码: 通用标签

这将再次触发第一个“查看”操作,问题是它将提供先前的ID?我以为RedirectToAction将不会提供任何参数?

有帮助吗?

解决方案

我以为RedirectToAction将不提供任何参数?

您的理解是错误的。如果目标网址包含具有相同名称的route参数,则会自动转发modelstate中存在的参数。在这种情况下,您将发布一个id参数(可能作为输入字段的一部分或URL的一部分),并且当您重定向回原始的Index操作时,这是因为路由定义在id的末尾具有RedirectToAction标记方法将填充它。

作为一种避免此行为的解决方法,您可以明确指定重定向时不应发送id参数: 通用标签

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top