2013-10-01 3 views
0

Я изучал это и не повезло. Возможно ли перенаправитьToAction из класса. Я переместил свой код с моего контроллера на класс, потому что он слишком длинный. Я хочу, чтобы redirectToAction и пользователь этот метод в моем контроллере.Переадресация на действие из класса

return RedirectToAction("CreateReportFile", "Home", new { result = strObj.ToString() }); 
+1

Это не имеет смысла. Можете ли вы объяснить больше о том, чего вы пытаетесь достичь, и почему вы считаете, что вам нужно перенаправить из класса, отличного от контроллера? –

ответ

0

RedirectToAction является метод на контроллере, так что вам нужно передать экземпляр контроллера к классу:

public ActionResult Foo() 
{ 
    var myClass = new MyClass(this); 
    return myClass.Bar(); 
} 

Я бы не назвал это хороший код, хотя. Вместо этого вы можете действовать от возвращаемого значения от метода в своем классе:

public ActionResult Foo() 
{ 
    var myClass = new MyClass(); 
    var result = myClass.Bar(); 

    if (result == "baz") // bool, Enum, whatever you like 
    { 
     return RedirectToAction(
      "CreateReportFile", 
      "Home", 
      new { result = myClass.StrObj.ToString() } 
      ); 
    } 
    else 
    { 
     // 
    } 
} 
Смежные вопросы