asp.net-mvcActionResult

Remarks

An ActionResult is best though of as an web endpoint in MVC. Ever ActionResult method can be reached by typing in the appropriate web address as configured by your Routing engine.

Return a View Page

This ActionResult returns a Razor view page. Under the standard routing template this ActionResult method would be reached at http://localhost/about/me

The View will be looked for automatically in your site at ~/Views/About/Me.cshtml

public class AboutController : Controller
{
    public ActionResult Me()
    {
        return View();
    }
}

Return a File

An ActionResult can return FileContentResult by specifying file path and file type based from extension definition, known as MIME type.

The MIME type can be set automatically depending on file type using GetMimeMapping method, or defined manually in proper format, e.g. "text/plain".

Since FileContentResult requires a byte array to be returned as a file stream, System.IO.File.ReadAllBytes can be used to read file contents as byte array before sending requested file.

public class FileController : Controller
{
     public ActionResult DownloadFile(String fileName)
     {
          String file = Server.MapPath("~/ParentDir/ChildDir" + fileName);
          String mimeType = MimeMapping.GetMimeMapping(path);

          byte[] stream = System.IO.File.ReadAllBytes(file);
          return File(stream, mimeType);
     }
}

Return a Json

Action result can return Json.

1.Returning Json to transmit json in ActionResult

public class HomeController : Controller
{
    public ActionResult HelloJson()
    {
        return Json(new {message1="Hello", message2 ="World"});
    }
}

2.Returning Content to transmit json in ActionResult

public class HomeController : Controller
{
    public ActionResult HelloJson()
    {
        return Content("Hello World", "application/json");
    }
}