RedirectToAction根本不是重定向

时间:2012-04-01 06:37:07

标签: asp.net-mvc asp.net-mvc-3

我正在使用RedirectToAction将帖子重定向到另一个控制器并且它正在工作。所以我试图重定向到同一个控制器中的另一个动作,它也不起作用。

    public ActionResult finalize(int id)
    {
        Meeting meeting = db.Meetings.Find(id);
        meeting.meetingStatus = "finalized";
        db.SaveChanges();
        return RedirectToAction("Index");
    }

    public ActionResult Create()
    {          
        return View();
    } 

    [HttpPost]
    public ActionResult Create(Meeting meeting)
    {
        if (ModelState.IsValid)
        {
            db.Meetings.Add(meeting);
            db.SaveChanges();
        //    return RedirectToAction("Invitation");  
            return (RedirectToAction("finalize", new { id = meeting.meetingID}));
        }

        return View(meeting);
    }

1 个答案:

答案 0 :(得分:0)

你不能在同一个电话中进行2次重定向,重定向只是将http重定向代码返回到另一个页面,重定向2次只是不工作,不要像正常方法那样对待动作方法它们是不同的

例如,当您请求页面example.com/controller/action

action将被执行,例如,它的返回值为RedirectToAction("NotFound")

在这种情况下会发生什么

action正文将被执行,返回值将向客户端发送一个302的http标头,表示您的新目的地为/controller/NotFound

所以RedirectToAction只是将一个http代码返回给客户端,而不是调用另一个方法


更新

我错了,我用fiddler2检查了,您可以多次使用重定向操作,服务器会为每个重定向标头发送一次

我快速得出结论,因为我并不认为多重定向是正确的方法,所以在我尝试之后,我可以说它有效,只需创建一个新项目,看看问题的确切位置或使用像fiddler2

这样的工具