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