说我有:
public ViewResult List()
{
IEnumerable<IModel> myList = repository.GetMyList();
if(1 == myList.Count())
{
RedirectToAction("Edit", new { id = myList.Single().id });
}
return View(myList);
}
在这个函数中,我检查列表中是否只有一个项目,如果有我想直接重定向到处理列表项的控制器,否则我想显示列表视图。
我该怎么做?简单地添加RedirectToAction
不起作用 - 调用被命中,但VS只是跨过它并尝试返回底部的视图。
答案 0 :(得分:23)
您需要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);
}