Asp.net mvc RedirectToAction ( "Индекс" ) против индекса()

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

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

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

Ответы

Ответ 1

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

Ответ 2

Другие вещи, которые следует учитывать:

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

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