ViewResult does not implement IDisposable interface. Look at ASP.NET MVC source:
ViewResult.cs:
namespace System.Web.Mvc {
using System;
using System.Globalization;
using System.Text;
using System.Web.Mvc.Resources;
public class ViewResult : ViewResultBase {
...
ViewResultBase.cs:
namespace System.Web.Mvc {
using System;
using System.Diagnostics.CodeAnalysis;
public abstract class ViewResultBase : ActionResult {
...
ActionResult.cs:
namespace System.Web.Mvc {
public abstract class ActionResult {
public abstract void ExecuteResult(ControllerContext context);
}
}
UPDATED:
If you implement IDisposable interface in your class (derived from ViewResult) the Dispose() (IDisposable.Dispose()) will not be invoked by ASP.NET MVC framework.