Как перенаправить функцию ViewResult или ActionResult?
Скажем, у меня есть:
public ViewResult List()
{
IEnumerable<IModel> myList = repository.GetMyList();
if(1 == myList.Count())
{
RedirectToAction("Edit", new { id = myList.Single().id });
}
return View(myList);
}
Внутри этой функции я проверяю, есть ли только один элемент в списке, если я хочу перенаправить прямо к контроллеру, который обрабатывает элемент списка, в противном случае я хочу отобразить представление списка.
Как мне это сделать? Просто добавление RedirectToAction
не работает - вызов ударил, но VS просто перешагивает его и пытается вернуть представление внизу.
Ответы
Ответ 1
Вам нужно return RedirectToAction
вместо вызова метода RedirectToAction. Кроме того, ваш метод должен вернуть ActionResult
- это тип возврата, совместимый как с ViewResult
, так и с RedirectToRouteResult
.
public ActionResult List()
{
IEnumerable<IModel> myList = repository.GetMyList();
if(1 == myList.Count())
{
return RedirectToAction("Edit", new { id = myList.Single().id });
}
return View(myList);
}