aspnet-mvc
  1. aspnet-mvc-custom-action-results

Custom Action Results - (ASP.NET MVC Advanced Topics)

In ASP.NET MVC, action results are responsible for returning data to a web page. While there are many built-in action results, it may be necessary to create a custom action result to handle specific requirements. In this tutorial, we'll discuss how to create custom action results in ASP.NET MVC.

Syntax

To create a custom action result in ASP.NET MVC, you need to create a class that inherits from the ActionResult class. The class should override the ExecuteResult method, which is responsible for rendering the result.

Example

Let's create a custom action result that returns a PDF file.

public class PdfResult : ActionResult
{
    private readonly string _filePath;

    public PdfResult(string filePath)
    {
        _filePath = filePath;
    }

    public override void ExecuteResult(ControllerContext context)
    {
        var response = context.HttpContext.Response;
 
        response.ContentType = "application/pdf";
        response.AddHeader("content-disposition", "attachment;  filename=File.pdf");
 
        response.WriteFile(_filePath);
    }
}

We create a class PdfResult that inherits from ActionResult. The constructor takes a file path as a parameter, and the ExecuteResult method sets the content type and content disposition headers, and then writes the file to the response stream.

Explanation

In the example above, we created a custom action result that returns a PDF file. The PdfResult class inherits from the ActionResult class, overrides the ExecuteResult method, and writes the file to the response stream. We then set the content type and content disposition headers to indicate that the response is a PDF file.

Use

Custom action results are useful when there is a requirement to handle specific types of data that are not supported by the built-in action results in ASP.NET MVC. Examples of custom action results include returning PDF, Excel, or CSV files, or returning data in a specific format like JSON or XML.

Important Points

Here are some important points to keep in mind when creating custom action results in ASP.NET MVC:

  • Custom action results should inherit from the ActionResult class and override the ExecuteResult method.
  • The ExecuteResult method should set the content type and content disposition headers for the response stream.
  • Custom action results can be used to handle specific data types that are not supported by the built-in ASP.NET MVC action results.

Summary

In this tutorial, we discussed how to create custom action results in ASP.NET MVC. We covered the syntax, example, explanation, use, and important points of custom action results. With this knowledge, you can create custom action results to handle specific data types and improve the functionality of your ASP.NET MVC application.

Published on: