Response.Redirect可以在私有void MVC 2函数中工作吗?

时间:2010-05-13 12:55:01

标签: c# asp.net-mvc asp.net-mvc-2

我有一个私有的void函数设置用于某些验证。如果我的验证失败,我想重定向到另一个ActionResult并终止正在使用的ActionResult的进程。 Response.Redirect(“controllerName”)没有帮助。有什么想法吗?

[Accept(HttpVerbs.Post)]
public ActionResult NerdDinner(string Name)
{
   testName(Name);
   ...
   Return RedirectToAction("ActionResultAAA"); 
}

private void testName(string name)  
{
    if(name == null)
    {
        //Response.Redirect("ActionResultBBB");
    }
}

1 个答案:

答案 0 :(得分:7)

您可以在任何地方使用Response.Redirect,但您需要提供正确的(相对或绝对)URL,而不仅仅是操作名称。但是,最好坚持使用MVC模式并执行以下操作:

[Accept(HttpVerbs.Post)] 
public ActionResult NerdDinner(string Name) 
{ 
   ActionResult testResult = testName(Name)
   if (testResult != null) return testResult;
   ... 
   return RedirectToAction("ActionResultAAA"); 
} 

private ActionResult testName(string name) 
{ 
    if(name == null) 
    { 
        return RedirectToAction("ActionResultBBB"); 
    } 

    return null;
}