Может ли Response.Redirect работать в закрытой void функции MVC 2? - PullRequest
5 голосов
/ 13 мая 2010

У меня есть частная функция 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 Ответ

7 голосов
/ 13 мая 2010

Вы можете использовать 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...