使用RedirectToAction而不传递查询字符串参数/路由值

本文关键字:参数 字符串 路由 查询 RedirectToAction 使用 | 更新日期: 2023-09-27 18:27:33

我有一个"Thingy"控制器,看起来像:

[HttpPost]
public ActionResult DeleteConfirmed(long? id) {
    // <Validate ID, delete associated records>
    return RedirectToAction("Index", "Thingy");
}

然而,RedirectToAction的路由值一直由参数中的id填充,而我希望它将id保留为null,以便重定向到www.mywebsite.com/Thingy而不是www.mywebsite.com/Thingy/1

事实上,我可以直接访问www.mywebsite.com/Thingy,它可以按预期工作。

我试过:

RedirectToAction("Index", "Thingy")
RedirectToAction("Index", "Thingy", new { })
RedirectToAction("Index", "Thingy", new { id = (long?)null })

最后一个特别有趣,因为它重定向到www.mywebsite.com/Thingy?id=1,而其他重定向到www.mywebsite.com/Thingy/1

使用RedirectToAction而不传递查询字符串参数/路由值

在第一个示例中的RedirectToAction()之前添加以下内容:

RouteData.Values.Remove("id");

我有一种感觉,您指定的路线值正在与原始路线值合并。