En mi llamada AJAX, deseo devolver un valor de cadena a la página de llamada.En MVC, ¿cómo devuelvo un resultado de cadena?
¿Debo usar ActionResult
o simplemente devolver una cadena?
En mi llamada AJAX, deseo devolver un valor de cadena a la página de llamada.En MVC, ¿cómo devuelvo un resultado de cadena?
¿Debo usar ActionResult
o simplemente devolver una cadena?
sólo puede utilizar el ContentResult
para devolver una cadena sencilla:
public ActionResult Temp() {
return Content("Hi there!");
}
ContentResult
por defecto devuelve un text/plain
como su contentType. Esta es sobrecargable por lo que también puede hacer:
return Content("<xml>This is poorly formatted xml.</xml>", "text/xml");
También se puede simplemente volver cadena si se sabe que es lo único que el método será nunca volver. Por ejemplo:
public string MyActionName() {
return "Hi there!";
}
Phil, ¿es esta una "Mejor práctica", podría explicar la diferencia entre su respuesta y @swilliam –
No puede devolver una cadena de un método que devuelve un resultado de acción, por lo que en este caso devuelve contenido ("") como lo explicó swilliams. Si solo necesitas devolver una cadena, entonces deberías hacer que el método devuelva una cadena, como explicó Phil. – Arkiliknam
Suponiendo que la misma acción tiene múltiples instrucciones 'return' que se utilizan para enviar' string' o 'JSON' o' View' en función de las condiciones, debemos usar 'Content' para devolver la cadena. – DhruvJoshi
public ActionResult GetAjaxValue()
{
return Content("string value");
}
mejor para explicar más durante la respuesta – Mostafiz
public JsonResult GetAjaxValue()
{
return Json("string value", JsonRequetBehaviour.Allowget);
}
hay 2 vías para devolver una cadena de controlador a la vista
primera
que podría devolver sólo cadena, pero no será incluido en el archivo html aparecerá una cadena jus en el navegador
segundo
podría devolver una cadena como objeto de vista de resultados
aquí es 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 expediente a fin de ejecutar AutoProperty lo redireccionará a Resultado vista y enviará s
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 funciono en http://localhost:60227/Home/AutoProperty
de verificación [aquí] (http://stackoverflow.com/a/30323853/2218697) para ** devolver el mensaje de alerta de arranque ** – stom