我有一个" 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
。
答案 0 :(得分:11)
在第一个示例中的RedirectToAction()
之前添加以下内容:
RouteData.Values.Remove("id");
我感觉您指定的路线值正在与原始路线值合并。