Используйте RedirectToAction без передачи параметров строки запроса / значений маршрута
У меня есть "Thingy" контроллер, который выглядит так:
[HttpPost]
public ActionResult DeleteConfirmed(long? id) {
// <Validate ID, delete associated records>
return RedirectToAction("Index", "Thingy");
}
Тем не мение, RedirectToAction
его значения маршрута заполняются идентификатором из параметров, в то время как я хочу, чтобы он оставлял идентификатор как ноль, поэтому он перенаправляет на 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
,
1 ответ
Решение
Добавьте следующее перед вашим RedirectToAction()
в вашем первом примере:
RouteData.Values.Remove("id");
У меня такое ощущение, что указанные вами значения маршрута объединяются с исходными значениями маршрута.