Подтвердить что ты не робот

MVC RedirectResult

Я новичок в MVC, может ли кто-нибудь сказать мне, для чего используется RedirectResult?

Мне было интересно, что отличает это:

public ActionResult Index()
{
    return new RedirectResult("http://www.google.com");
}

и это:

public RedirectResult Index()
{
    return new RedirectResult("http://www.google.com");
}
4b9b3361

Ответ 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 (возможно, это не очень важно, но это дополнительный шаг, который вам нужно сделать).

Ответ 2

В принципе оба одинаковы. Основная концепция - все результаты получены из результата acion.

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