Different Types Of Action Results In ASP.NET MVC

Introduction

 
In ASP.NET, MVC has different types of Action Results. Each action result returns a different format of output. A programmer uses different action results to get expected output. Action Results return the result to view the page for the given request.
 
result 
 

Action Result

 
Action Result is a result of action methods or return types of action methods. Action result is an abstract class. It is a base class for all type of action results. 
 
Types  
Figure 2: Types of Action Result
 
The diagram shown below describes about abstract class of Action Result. There are two methods in Action Result. One is ActionResult() and another one is ExecuteResult().
 
class 
 

Types of Action Results

 
There are different Types of action results in ASP.NET MVC. Each result has a different type of result format to view page. 
  • View Result
  • Partial View Result
  • Redirect Result
  • Redirect To Action Result
  • Redirect To Route Result
  • Json Result
  • File Result
  • Content Result

View Result

 
View result is a basic view result. It returns basic results to view page. View result can return data to view page through which class is defined in the model. View page is a simple HTML page. Here view page has “.cshtm” extension. 
  1. public ViewResult About()  
  2.        {  
  3.             ViewBag.Message = "Your application description page.";  
  4.             return View();  
  5.   
  6.        }  
View Result is a class and is derived from “ViewResultBase” class. “ViewResultBase” is derived from Action Result. View Result base class is an Action Result. Action Result is a base class of different action result.
 
result 
result 
 
View Result class is inherited from Action Result class by View Result Base class. The diagram shown above describes inheritance of Action Results.
 

Partial View Result 

 
Partial View Result is returning the result to Partial view page. Partial view is one of the views that we can call inside Normal view page.
  1. public PartialViewResult Index()  
  2. {  
  3. return PartialView("_PartialView");  
  4. }  
partial 
 
We should create a Partial view inside shared folder, otherwise we cannot access the Partial view. The diagram is shown above the Partial view page and Layout page because layout page is a Partial view. Partial View Result class is also derived from Action Result.
 

Redirect Result

 
Redirect result is returning the result to specific URL. It is rendered to the page by URL. If it gives wrong URL, it will show 404 page errors.
  1. public RedirectResult Index()  
  2. {  
  3. return Redirect("Home/Contact");  
  4. }  

Redirect to Action Result

 
Redirect to Action result is returning the result to a specified controller and action method. Controller name is optional in Redirect to Action method. If not mentioned, Controller name redirects to a mentioned action method in current Controller. Suppose action name is not available but mentioned in the current controller, then it will show 404 page error.
  1. public ActionResult Index()  
  2. {  
  3. return RedirectToAction("Login""Account");  
  4. }  

Json Result

 
Json result is a significant Action Result in MVC. It will return simple text file format and key value pairs. If we call action method, using Ajax, it should return Json result.
  1. public ActionResult Index()  
  2. {  
  3. var persons = new List<Person1>  
  4.        {  
  5.         new Person1{Id=1, FirstName="Harry", LastName="Potter"},  
  6.               new Person1{Id=2, FirstName="James", LastName="Raj"}  
  7.        };  
  8.        return Json(persons, JsonRequestBehavior.AllowGet);  
  9.   }  
Output
 
Output 
 
While returning more data in Json format, there is a need to mention maximum length. Assign maximum length of data Using “MaxJsonLength” property.
  1. public ActionResult Index()  
  2. {  
  3. var persons = new List<Person1>  
  4.        {  
  5.         new Person1{Id=1, FirstName="Harry", LastName="Potter"},  
  6.               new Person1{Id=2, FirstName="James", LastName="Raj"}  
  7.               
  8. };  
  9.   
  10.        var jsonResult = Json(persons, JsonRequestBehavior.AllowGet);  
  11.        jsonResult.MaxJsonLength = int.MaxValue;  
  12.        return jsonResult;  
  13. }  

File Result

 
File Result returns different file format view page when we implement file download concept in MVC using file result. Simple examples for file result are shown below:
  1. public ActionResult Index()  
  2. {  
  3. return File("Web.Config""text");  
  4. }  
Output
 
Output 
 

Content Result

 
Content result returns different content's format to view. MVC returns different format using content return like HTML format, Java Script format and any other format.
 
Example
  1. public ActionResult Contact()  
  2. {  
  3. ViewBag.Message = "Your contact page.";  
  4.   
  5.        return View();  
  6. }  
Output
 
Output 
  1. public ActionResult Index()  
  2. {  
  3. return Content("<script>alert('Welcome To All');</script>");  
  4. }  
Output
 
Output 
 

Conclusion

 
This article explains about Action Results. It is very useful for new MVC learners and students.