301 – постоянная переадресация
302 – временная переадресация
В контроллере мы можем написать
Для временной
1 2 3 4 |
public RedirectResult SomeMethod() { return Redirect("/Home/Index"); } |
Для постоянной
1 2 3 4 |
public RedirectResult SomeMethod() { return RedirectPermanent("/Home/Index"); } |
Пример
1 2 3 4 5 6 7 8 9 |
public ActionResult Buy(int id) { if (id > 3) { return Redirect("/Home/Index"); } ViewBag.BookId = id; return View(); } |
Ещё способы редиректа для временной переадресации
1 2 3 4 |
public RedirectToRouteResult SomeMethod() { return RedirectToRoute(new { controller="Home", action="Index"}); } |
1 2 3 4 |
public RedirectToRouteResult SomeMethod() { return RedirectToAction("Square", "Home", new { a=10,h=12}); } |
Для постоянной аналогично RedirectPermanent и RedirectToActionPermanent.
Отправка ошибок и статусных кодов
в общем виде, для любого кода
1 2 3 4 5 6 7 8 |
public ActionResult Check(int age) { if (age < 21) { return new HttpStatusCodeResult(404); } return View(); } |
либо если ресурс не найден
1 2 3 4 5 6 7 8 |
public ActionResult Check(int age) { if (age < 21) { return HttpNotFound(); } return View(); } |
либо если пользователь не авторизован
1 2 3 4 5 6 7 8 |
public ActionResult Check(int age) { if (age < 21) { return new HttpUnauthorizedResult(); } return View(); } |