Bene, se si è nel controller, si conosce l'azione che viene chiamata. Sto indovinando che hai una classe che viene utilizzata nel controller che deve comportarsi in modo diverso in base all'azione che viene chiamata. In tal caso, passerei una rappresentazione stringa dell'azione nell'oggetto che ha bisogno di queste informazioni all'interno del metodo di azione. Alcuni esempi di codice da te chiariscono davvero cosa devi fare. Ecco alcuni esempi di codice che sto pensando:
public ActionResult TestControllerAction()
{
var action = new TestControllerAction();
var objectWithBehaviorBasedOnAction = new MyObjectWithBehaviorBasedOnAction();
objectWithBehaviorBasedOnAction.DoSomething(action);
}
public class MyObjectWithBehaviorBasedOnAction: IMyBehaviorBasedOnAction
{
public void DoSomething(IControllerAction action)
{
// generic stuff
}
public void DoSomething(TestControllerAction action)
{
// do behavior A
}
public void DoSomething(OtherControllerAction action)
{
// do behavior b
}
}
public interface IMyBehaviorBasedOnAction
{
void DoSomething(IControllerAction action);
}
fonte
2009-09-11 03:30:46