multiple - Cómo cambiar el ContentType devuelto en el controlador MVC de ASP.NET(ActionResult)
mvc submit button action (4)
Así, solo cambia el tipo de contenido en consecuencia:
Tengo un controlador de ASP.NET MVC llamado diccionario con el método ControlsLangJsFile. El método devuelve la vista del control de usuarios (ASCX) que contiene variables de JavaScript.
Cuando llamo al método, devuelve variables con cadenas analizadas, pero el tipo de contenido es html / text. Debería ser: aplicación / x-javascript
public ActionResult ControlsLangJsFile()
{
return View("~/Views/Dictionary/ControlsLangJsFile.ascx",);
}
¿Cómo logro esto?
El control de los usuarios no acepta ContentType = "text / xml"
Solución:
public ActionResult ControlsLangJsFile()
{
Response.ContentType = "text/javascript";
return View("~/Views/Dictionary/ControlsLangJsFile.ascx");
}
Tratar:
return Json(new
{
uCode = SysContext.CurrentUserCode,
uPwd = SysContext.CurrentUserPwd,
rMe = SysContext.RememberMe
}, "application/json", JsonRequestBehavior.AllowGet);
Tuve esta misma pregunta mientras construía una vista de afeitar con JS en ella e intenté usar la solución de @jmav:
public ActionResult Paths()
{
Response.ContentType = "text/javascript"; //this has no effect
return View();
}
Eso no funciona cuando está devolviendo una Vista (). Parece que la representación de la vista establece el tipo de contenido en sí, a pesar de lo que se asigna en el método del controlador.
En su lugar, haga la asignación en el código de vista en sí:
// this lives in viewname.cshtml/vbhtml
@{
this.Response.ContentType = "text/javascript";
}
// script stuff...