En mi llamada AJAX, quiero devolver un valor de cadena a la página de llamada.
¿Debo usar ActionResulto simplemente devolver una cadena?
En mi llamada AJAX, quiero devolver un valor de cadena a la página de llamada.
¿Debo usar ActionResulto simplemente devolver una cadena?
Respuestas:
Puede usar el ContentResultpara devolver una cadena simple:
public ActionResult Temp() {
return Content("Hi there!");
}
ContentResultpor defecto devuelve a text/plaincomo su contentType . Esto se puede cargar, por lo que también puede hacer:
return Content("<xml>This is poorly formatted xml.</xml>", "text/xml");
ContentResulthace if (!String.IsNullOrEmpty(ContentType))antes de configurar HttpContext.Response.ContentType. Estoy viendo text/htmlcon su primer ejemplo, o ese es el valor predeterminado ahora o es una suposición educada por el HttpContext.
MediaTypeNames.Text.Plaino MediaTypeNames.Text.Xml. Aunque solo incluye algunos de los tipos MIME más utilizados. ( docs.microsoft.com/en-us/dotnet/api/… )
También puede simplemente devolver una cadena si sabe que eso es lo único que devolverá el método. Por ejemplo:
public string MyActionName() {
return "Hi there!";
}
returndeclaraciones que se utilizan para enviar cualquiera stringo JSONo Viewbasado en las condiciones entonces debemos utilizar Contentpara volver cadena.
public ActionResult GetAjaxValue()
{
return Content("string value");
}
A partir de 2020, el uso ContentResultsigue siendo el enfoque correcto como se propuso anteriormente , pero el uso es el siguiente:
return new System.Web.Mvc.ContentResult
{
Content = "Hi there! ☺",
ContentType = "text/plain; charset=utf-8"
}
hay 2 formas de devolver una cadena del controlador a la vista
primero
podría devolver solo una cadena pero no se incluirá en el archivo html, solo aparecerá una cadena en el navegador
segundo
podría devolver una cadena como objeto de Ver resultado
aquí están los ejemplos de código para hacer esto
public class HomeController : Controller
{
// GET: Home
// this will mreturn just string not html
public string index()
{
return "URL to show";
}
public ViewResult AutoProperty()
{ string s = "this is a string ";
// name of view , object you will pass
return View("Result", (object)s);
}
}
en el archivo de vista para ejecutar AutoProperty , lo redireccionará a la vista de resultados y le enviará un
código para ver
<!--this to make this file accept string as model-->
@model string
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Result</title>
</head>
<body>
<!--this is for represent the string -->
@Model
</body>
</html>
lo ejecuto en http: // localhost: 60227 / Home / AutoProperty