Как я перенаправляю в функции ViewResult или ActionResult?

Скажите, что я имею:

public ViewResult List() 
{
    IEnumerable<IModel> myList = repository.GetMyList();
    if(1 == myList.Count())
    {
        RedirectToAction("Edit", new { id = myList.Single().id });
    }

    return View(myList);
}

В этой функции я проверяю, существует ли только один объект в списке, если существует, я хотел бы перенаправить прямо к контроллеру, который обрабатывает элемент списка, иначе я хочу отобразить Представление Списка.

Как я делаю это? Просто добавление a RedirectToAction не работает - вызов поражен, но VS просто переступает через него и пытается возвратить Представление внизу.

15
задан Jim Counts 18 April 2012 в 22:19
поделиться

1 ответ

Вам нужно возвращать 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);
}
24
ответ дан 1 December 2019 в 03:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: