asp.net mvc RedirectToAction ("Индекс") против Индекса () - PullRequest
16 голосов
/ 29 ноября 2008

Скажем, у меня есть контроллер с методом индексации и методом обновления. После завершения обновления я хочу перенаправить на Index (). Должен ли я использовать return RedirectToAction ("Index") или я могу просто вызвать return Index ()? Есть ли разница?

public ActionResult Index()
{
  return View("Index", viewdata);
}

public ActionResult Update()
{
  // do updates
  return RedirectToAction("Index"); or
  return Index();
}

Ответы [ 2 ]

23 голосов
/ 29 ноября 2008

Используйте перенаправление, в противном случае URL-адрес клиента останется таким же, как опубликованный URL-адрес, а не URL-адрес, соответствующий действию Index.

11 голосов
/ 29 ноября 2008

Другие вопросы для рассмотрения:

  • Действие перенаправления после POST будет действовать лучше, когда пользователь нажимает кнопку Обновить, поскольку ему не будет предложено повторно отправить данные на сервер.

  • Данные формы будут потеряны при действии перенаправления, если вы не будете поддерживать их явно, например, через TempData. Без этого ваши элементы управления формой не будут иметь никакого значения после POST, что может быть нежелательно в некоторых случаях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...