Существует множество опций, вы можете справиться с ними одним действием, например:
public ActionResult DoSomething(...)
{
if (Request.IsAjaxRequest())
return DoSomethingAjax(..);
else
return DoSomethingStandard(..);
}
private ActionResult DoSomethingAjax(..) { }
private ActionResult DoSomethingStandard(..) { }
Вы можете создать некоторый фабричный компонент, который выполняет работу, и вызывает из двух методов:
public ActionResult DoSomething()
{
return DoSomethingFactory.Do();
}
public ActionResult DoSomethingAjax()
{
return DoSomethingFactory.Do();
}
Вы можете разделить обработчики действий обратной передачи и обработчики AJAX, используя частичный класс.
Некоторые идеи.