Wydaje się więc, sprawdź source code of ControllerActionInvoker.cs. Nie zweryfikowałem tego, ale logika mówi mi, że return void ustawi actionReturnValue na wartość null, więc generowany jest EmptyResult. Jest to najnowszy kod źródłowy, nie sprawdzono źródła dla ASP.net MVC 1.0.
protected virtual ActionResult CreateActionResult(ControllerContext controllerContext, ActionDescriptor actionDescriptor, object actionReturnValue) {
if (actionReturnValue == null) {
return new EmptyResult();
}
ActionResult actionResult = (actionReturnValue as ActionResult) ??
new ContentResult { Content = Convert.ToString(actionReturnValue, CultureInfo.InvariantCulture) };
return actionResult;
}
OK, więc używa deseniu obiektu zerowego. –