MVC Developer Question:
Explain me what is the difference between ActionResult and ViewResult?
Answer:
ActionResult is an abstract class while ViewResult derives from the ActionResult class.
ActionResult has several derived classes like ViewResult, 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 called DynamicView. Depending on the flag (IsHtmlView) it will either return a ViewResult or JsonResult.
☰ public ActionResult DynamicView()
☰ {
☰ if (IsHtmlView)
☰ return View(); // returns simple ViewResult
☰ else
☰ return Json(); // returns JsonResult view
☰ }
ActionResult has several derived classes like ViewResult, 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 called DynamicView. Depending on the flag (IsHtmlView) it will either return a ViewResult or JsonResult.
☰ public ActionResult DynamicView()
☰ {
☰ if (IsHtmlView)
☰ return View(); // returns simple ViewResult
☰ else
☰ return Json(); // returns JsonResult view
☰ }
Previous Question | Next Question |
Tell us what is ViewStart? | Tell me different return types of a controller action method? |