Risposte:
Puoi semplicemente usare il ContentResult
per restituire una stringa semplice:
public ActionResult Temp() {
return Content("Hi there!");
}
ContentResult
per impostazione predefinita restituisce a text/plain
come contentType . Questo è sovraccarico, quindi puoi anche fare:
return Content("<xml>This is poorly formatted xml.</xml>", "text/xml");
ContentResult
fa if (!String.IsNullOrEmpty(ContentType))
prima di impostare HttpContext.Response.ContentType
. Sto vedendo text/html
con il tuo primo esempio, o è quello predefinito ora o è un'ipotesi istruita da parte di HttpContext
.
MediaTypeNames.Text.Plain
o MediaTypeNames.Text.Xml
. Sebbene includa solo alcuni dei tipi MIME più utilizzati. ( docs.microsoft.com/en-us/dotnet/api/… )
Puoi anche restituire la stringa solo se sai che è l'unica cosa che il metodo potrà mai restituire. Per esempio:
public string MyActionName() {
return "Hi there!";
}
return
istruzioni utilizzate per inviare una string
o JSON
o in View
base a condizioni, è necessario utilizzare Content
per restituire la stringa.
public ActionResult GetAjaxValue()
{
return Content("string value");
}
A partire dal 2020, l'utilizzo ContentResult
è ancora l'approccio giusto come proposto sopra , ma l'utilizzo è il seguente:
return new System.Web.Mvc.ContentResult
{
Content = "Hi there! ☺",
ContentType = "text/plain; charset=utf-8"
}
esiste un modo 2 per restituire una stringa dal controller alla vista
primo
potresti restituire solo una stringa ma non sarai incluso nel file html, apparirà solo una stringa nel browser
secondo
potrebbe restituire una stringa come oggetto di Visualizza risultato
ecco gli esempi di codice per farlo
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);
}
}
nel file di visualizzazione per eseguire AutoProperty ti reindirizzerà alla vista dei risultati e invierà il
codice s alla vista
<!--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 eseguo a eseguo http: // localhost: 60227 / Home / AutoProperty