【问题标题】:How do I redirect within a ViewResult or ActionResult function?如何在 ViewResult 或 ActionResult 函数中重定向?
【发布时间】:2010-03-29 14:08:27
【问题描述】:

说我有:

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

    return View(myList);
}

在这个函数中,我检查列表中是否只有一项,如果有我想直接重定向到处理列表项的控制器,否则我想显示列表视图。

我该怎么做?简单地添加一个RedirectToAction 是行不通的——调用被击中,但 VS 只是跨过它并尝试在底部返回视图。

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    您需要return RedirectToAction 而不是仅仅调用 RedirectToAction 方法。此外,您的方法将需要返回一个 ActionResult 是与 ViewResultRedirectToRouteResult 兼容的返回类型。

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

    【讨论】:

    • 将函数返回类型更改为 ActionResult 后,干杯!
    • 整个早上我都把头撞在桌子上,试图理解为什么 RedirectToAction() 在我的控制器中不起作用!如此简单!
    猜你喜欢
    • 2014-08-27
    • 2012-08-07
    • 1970-01-01
    • 2016-05-04
    • 2012-12-02
    • 2011-06-09
    • 1970-01-01
    • 2012-01-24
    • 1970-01-01
    相关资源
    最近更新 更多