2009-09-29 17 views
14

¿Hay una lista de todos los resultados de acciones de ASP.Net MVC y sus usos?¿Cuáles son todos los resultados de acción de ASP.Net MVC?

He estado muy ocupado utilizando ActionResult para casi todo, pero sé que no es correcto y que debería usar resultados de acción más específicos.

He buscado esto en Google pero no puedo encontrar una lista. Acabamos de comprar el libro de Wrox pero está a más de una semana de la entrega y me gustaría leer sobre esto mucho antes.

¿Puedes enrollar el tuyo y está documentado en alguna parte?

Respuesta

22

Si abre System.Web.Mvc usando Reflector, verá que hay varios tipos derivados que heredan de la clase abstracta ActionResult. Ellos son:

System.Web.Mvc.ContentResult 
System.Web.Mvc.EmptyResult 
System.Web.Mvc.FileResult 
    System.Web.Mvc.FileContentResult 
    System.Web.Mvc.FilePathResult 
    System.Web.Mvc.FileStreamResult 
System.Web.Mvc.HttpUnauthorizedResult 
System.Web.Mvc.JavaScriptResult 
System.Web.Mvc.JsonResult 
System.Web.Mvc.RedirectResult 
System.Web.Mvc.RedirectToRouteResult 
System.Web.Mvc.ViewResultBase 
    System.Web.Mvc.PartialViewResult 
    System.Web.Mvc.ViewResult 

Sí, puede hacer su propio heredar de la clase abstracta ActionResult. Puede estudiar uno o más de los resultados de acción en la lista anterior con Reflector para tener una idea de cómo se haría esto.

El código fuente también está disponible aquí:

http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24471

+0

Excelente. Gracias Robert. – griegs

+6

En el caso de ASP.NET MVC, la fuente está disponible. Puede ser más * conveniente * usar un reflector, pero existe un valor adicional (comentarios, etc.) en la fuente. –

+4

Gracias Marc. Echaremos un vistazo a eso también. Mientras tanto, logré crear mi propio ActionResult que me devolvió la palabra "Slappy". Entonces eso fue divertido. :) Gracias a todos. – griegs

0

Si está buscando esto para ASP.NET MVC 5, añadir HttpStatusCodeResult a la lista.

También vale la pena mencionar que los métodos de ayuda que devuelven el resultado de la acción correspondiente, no tienen la palabra "Resultado" al final. Por ejemplo, para devolver un HttpNotFoundResult, escribirá return HttpNotFound ("descripción del estado");.

ActionResult Class page on MSDN tiene la lista completa de clases de resultados y los métodos de ayuda.

Cuestiones relacionadas