Controllers MVC


Fecha en que se escribió el post: 2009-05-20

Los Controllers son los encargados de “controlar” los request que se realizan hacia la aplicacion. Cada request es mapeado a un controlador particular encargado de dar el response al mismo.

Cada Controller se define en una clase que hereda de la clase System.Web.Mvc.Controller:

public class EmployeeController : Controller    { …

A su vez cada definicion de Controller para cada caso particular expone una serie de acciones. Que son estas Acciones? Las acciones son metodos expuestos por el Controller para atender cada request segun corresponda. Si por ejemplo hago un request a esta URL: http://localhost/Employee/Detalle/3 el metodo Detalle() del Controller Employee con el parametro 3, se ejecutara.

Todos los metodos deben ser publicos para poder atender los request. Hay que ser cuidadosos con que metodos exponemos o darle seguridad a cada uno para poder ser ejecutados (lo veremos más adelante). Las acciones expuestas por el Controller no pueden ser sobrecargadas y no deben ser estaticas.

Estas acciones dan un resultado o sea un response que son denominadas Action Result.

Los action result heredan de la clase ActionResult

Los action result mas comunes son:

  • Resultado HTML denominado ViewResult
  • Resultado vacio: EmptyResult
  • Redireccionamiento: RedirectResult
  • Resultado en JSON: JsonResult
  • Resultado JavaScript: JavaScriptResult
  • Resultado en texto: ContentResult
  • Descarga de archivo con contenido Binario: FileContentResult
  • Descarga de archivo con path: FilePathResult
  • Descarga de archivo con su stream: FIleStreamResult

Se puede llamar a los metodos de la clase base Controller para devolver un resultado desde la acción:

  • View que retorna un ViewResult
  • Redirect que retorna un RedirectResult
  • RedirectToAction que retorna un RedirectToRouteResult
  • RedirectToRoute que retorna un RedirectToRouteResult
  • Json que retorna un JsonResult
  • JavaScriptResult que retorna un JavaScriptResult
  • Content que retorna un ContentResult
  • File que retorna un FIleContentResult, un FilePathResult o un FileStreamResult

Cualquier valor que se quiera retornar que no sea un ActionResult se devolvera como un ContentResult.

Anuncios

Deja un comentario

Archivado bajo Teoría

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s