На самом деле, T4MVC не должен иметь значения здесь.Если вы непосредственно создадите экземпляр своего контроллера и вызовете метод действия, вы получите то же самое, независимо от того, используете вы T4MVC или нет.то есть вы не получите T4MVC_ActionResult.
Только когда вы напишите MVC.Foo.Details (), вы получите T4MVC_ActionResult.Это потому, что MVC.Foo возвращает экземпляр класса производного , который выполняет особые функции, а не непосредственно класс вашего контроллера.
Имеет ли это смысл?
Обновление : я в замешательстве, так как, глядя на источники для TestControllerBuilder.CreateController, он имеет:
public T CreateController<T>(params object[] constructorArgs) where T : Controller
{
var controller = (Controller)Activator.CreateInstance(typeof(T), constructorArgs);
InitializeController(controller);
return controller as T;
}
Так что он напрямую создает экземпляр типа, который вы передаете, который должен просто вызвать ваше обычное действие.
Один вопрос о вашем коде: ваш метод действия Details принимает какие-либо параметры?Если это так, это объяснит проблему, поскольку вы вызываете ее без параметров, что будет методом T4MVC, добавленным в частичный класс.