Cóż, jeśli jesteś w sterowniku, wiesz, jakie działanie jest wywoływane. Zgaduję, że masz klasę, która jest używana w kontrolerze, który musi zachowywać się inaczej w zależności od akcji, która jest wywoływana. Jeśli tak jest, to przekazałbym ciąg znaków reprezentujący akcję do obiektu, który potrzebuje tej informacji z metody działania. Jakiś przykładowy kod naprawdę wyjaśniłby, co musisz zrobić. Oto przykładowy kod, o którym myślę:
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);
}