Ответ 1
Он используется для перенаправления HTTP на заданный URL-адрес. В основном он отправит код статуса 302 вместе с заголовком Location в ответе, чтобы клиент теперь выдает новый HTTP-запрос в это новое место.
Обычно вы должны использовать его так, как это, вместо явного вызова конструктора:
public ActionResult Index()
{
return Redirect("http://www.google.com");
}
Что касается разницы между двумя вашими фрагментами кода, ну, это больше вопрос С#, чем связанный с MVC. Фактически RedirectResult происходит от ActionResult, так что оба являются допустимыми синтаксисами. Лично я предпочитаю первый, так как вы, например, можете изменить это перенаправление, чтобы вернуть представление:
public ActionResult Index()
{
return View();
}
и если вы явно указали, что тип возвращаемого значения RedirectResult
вместо ActionResult
, вам теперь придется изменить его на ViewResult
(возможно, это не очень важно, но это дополнительный шаг, который вам нужно сделать).