[HttpGet]
public void verifyAccount(string id)
{
if (clientDB.verifyAccount(id)!="")
{
// Redirect("index");//redirect to index view
}
else
{
//redirect to error view
}
}
我尝试使用Redirect(“Index”);但它不起作用,是否无法重定向到从void方法查看
答案 0 :(得分:1)
您无法从返回void的方法重定向。为了重定向,您必须返回ActionResult
,并且由于此方法返回 nothing ,您显然无法实现。
将操作的返回类型设置为void
只是一种简单的方式,它会返回一个包含200状态代码且没有响应正文的响应。如果事实并非如此,因为它不在此处,那么您的返回类型不应为void
。此处,唯一可能的响应是重定向,因此您的操作的返回类型应为ActionResult
或RedirectResult
。通常情况下,使用ActionResult
通常会更好,因为它是所有其他类型结果的基类。您甚至可以通过执行void
或仅return new EmptyResult();
来实现与使用return null;
相同的功能。
答案 1 :(得分:0)
是否无法从void方法重定向到查看?
是。您的操作应返回ActionResult
类型并返回重定向(或视图)。
答案 2 :(得分:0)
是的,您可以使用HandleUnknownAction
RedirectToAction("Index").ExecuteResult(this.ControllerContext);
答案 3 :(得分:0)
这不对,但是您可以使用Response.Redirect(“〜/ Home / Login”);
但是在某些情况下,它可能会使antiforgerytokenm抛出异常...