ASP.NET MVC: How to covert an ActionResult to string?

burnt1ce picture burnt1ce · Jan 3, 2011 · Viewed 10.6k times · Source

I would like to take an existing action method, render its return value to a string and ship it as a JSON for a response to an AJAX request.

To do this, I need to render an ActionResult to a string. How do i do this?

We have the opposite where we can convert a string to an ActionResult by using this.Content().

Update

The existing and 1st action method returns a type ActionResult but it really returns a ViewResult to respond to HTTP post request. I have a 2nd action method (my facade) that returns a JsonResult that responds to AJAX requests. I want this 2nd action method to use the 1st action method to render the HTML.

In the grand scheme of things, I want an ActionResult (generated from an action method) retrievable not only by a standard HTTP post, but also by an AJAX request via a facade action method (the 2nd action method). This way, I, as a developer, have the choice of using an HTTP Post or AJAX to retrieve the rendering of a page.

Sorry i tried to make this update as short as possible. Thanks.

Answer

Leniel Maccaferri picture Leniel Maccaferri · Jan 3, 2011

Are you looking for number 4 or 6 bellow?

Text extracted from here:

Understanding Action Results

A controller action returns something called an action result. An action result is what a controller action returns in response to a browser request.

The ASP.NET MVC framework supports several types of action results including:

  1. ViewResult - Represents HTML and markup.
  2. EmptyResult - Represents no result.
  3. RedirectResult - Represents a redirection to a new URL.
  4. JsonResult - Represents a JavaScript Object Notation result that can be used in an AJAX application.
  5. JavaScriptResult - Represents a JavaScript script.
  6. ContentResult - Represents a text result.
  7. FileContentResult - Represents a downloadable file (with the binary content).
  8. FilePathResult - Represents a downloadable file (with a path).
  9. FileStreamResult - Represents a downloadable file (with a file stream).

All of these action results inherit from the base ActionResult class.