首先,我感到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/