ActionResult与ViewResult的区别
ActionResult 类
封装一个操作方法的结果并用于代表该操作方法执行框架级操作。
操作方法通过执行工作并返回操作结果来响应用户输入。 操作结果表示框架将代表操作方法执行的命令。 ActionResult 类是操作结果的基类。
ViewResult 类
表示一个类,该类用于使用由 IViewEngine 对象返回的 IView 实例来呈现视图。
ViewResult 类实现了抽象 ViewResultBase 类,并用于呈现视图。 此类包含用于查找要呈现的视图的方法和用于执行结果的方法。 此类还包含用于为应用程序标识要呈现的视图的属性、视图的名称、母版视图的名称、视图数据、临时数据以及视图引擎集合。
两者的关系
继承
System.Object
System.Web.Mvc.ActionResult
System.Web.Mvc.ViewResultBase
System.Web.Mvc.ViewResult
ActionResult 是一个抽象(abstract)类,ViewResult 只是ActionResult 的一个实现(implementation)。如果你确认你返回的是一个视图(view),你可以直接返回类型为ViewResult。
ActionResult 有很多的派生类,如果你很确定你要返回的类型,你可以明确的返回该类型。
如果你并不是很清楚,或者你根本不想去理解这些东西,你可以直接返回这些派生类的基类:ActionResult 。