Difference between Action result and View result
ActionResult
is an abstract class while ViewResult
derives from theActionResult
class.ActionResult
has several derived classes likeViewResult
,JsonResult
,FileStreamResult
, and so on.
ActionResult
can be used to exploit polymorphism and dynamism. So if you are returning different types of views dynamically,ActionResult
is the best thing. For example in the below code snippet, you can see we have a simple action calledDynamicView
. Depending on the flag (IsHtmlView
) it will either return aViewResult
orJsonResult
.
public ActionResult DynamicView()
{
if (IsHtmlView)
return View();
//
returns simple ViewResult
else
return Json();
//
returns JsonResult view
}