首先,我感到Response.Redirect只是经典ASP的遗留物,我应该在MVC范例中使用其他内容。

其次,虽然我当前的Response.Redirect实现可以正常工作,但它并没有设置我想要的cookie。我假设这是因为 header 被清除了,而不是重定向时发送给了客户端。

这是我到目前为止的内容:

    [HttpPost]
    public ActionResult Login(FormCollection form)
    {
        User user;
        string sessionKey;

        if (UserManager.Login(form["Email"], form["Password"]))
        {
            // Login stuff here

            // Remember user's email
            Response.Cookies["Email"].Value = form["Email"];
            Response.Cookies["Email"].Expires = DateTime.Now.AddDays(31);

            // Redirect to homepage
            Response.Redirect("~/");
        }
     }

最佳答案

在MVC中重定向的正确方法是return RedirectToAction("Home", "Index")

Cookie应该可以使用。

关于c# - 如何在MVC3/Razor中正确重定向(在设置cookie的同时)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6372987/

10-11 15:57