2010-12-10 15 views

Respuesta

15

Debe establecer un tipo de contenido diferente en su método de acción.

public ActionResult MyAction() { 
    Response.ContentType = "something"; 
    return View(); 
} 
+0

Oh ... he encontrado esto a través de Google, pero poca gente dice que esto no funcionaba. Gracias por la respuesta rápida marcind :) :) – kidoman

+0

Una pregunta de seguimiento ... ¿debería hacerlo en el controlador o en la vista? @ {Response.ContentType = "..."; } Supongo que tenerlo en la vista es mejor. – kidoman

+1

Si siguiera la separación de los principios de las preocupaciones, entonces argumentaría que la vista es el lugar equivocado para esto. La responsabilidad de la vista es representar la respuesta a la secuencia de salida. Yo personalmente lo haría en el método de acción como arriba si es algo que ocurre una sola vez. Si tuviera varias vistas que necesitaran un tipo de contenido personalizado, escribiría mi propia clase que se deriva de 'ViewResult' y la devolvería en lugar de' View() '. Sin embargo, * puede * escribir este código en la vista en sí, por lo que en última instancia es una cuestión de preferencia. Al final deberías hacer lo que terminaste con tu trabajo :) – marcind

13

que trabajará Acabo de prueba que, también se puede añadir la siguiente línea a su cshtml:

Response.ContentType = "application/javascript"; 

para que se vea algo como esto:

@{ 
    ViewBag.Title = "Home Page"; 
    Response.ContentType = "application/javascript"; 
} 

Simplemente depende de dónde prefiera hacer el cambio.

0

Utilice esta:

return Content(json, "application/json"); 
Cuestiones relacionadas