2009-02-16 6 views

Répondre

918

Vous pouvez simplement utiliser le ContentResult pour retourner une chaîne de caractères:

public ActionResult Temp() { 
    return Content("Hi there!"); 
} 

ContentResult par défaut retourne un text/plain comme contentType. Ceci est surchargeable donc vous pouvez aussi le faire:

return Content("<xml>This is poorly formatted xml.</xml>", "text/xml"); 
+1

Ah merci, je ne savais pas à ce sujet :). – Morph

+1

C'est gentil! Je ne savais pas à ce sujet. – Chaddeus

+0

Tous les jours, vous apprenez quelque chose de nouveau! –

104

Vous pouvez également revenir juste chaîne si vous savez que est la seule chose que la méthode ne sera jamais revenir. Par exemple:

public string MyActionName() { 
    return "Hi there!"; 
} 
+9

Phil, est-ce une "meilleure pratique", pourriez-vous s'il vous plaît expliquer la différence entre votre réponse et @swilliam –

+9

Vous ne pouvez pas retourner une chaîne à partir d'une méthode qui retourne un ActionResult, donc dans ce cas vous retournez Content ("") comme expliqué Swilliams. Si vous avez seulement besoin de renvoyer une chaîne, alors la méthode retournera une chaîne, comme l'a expliqué Phil. – Arkiliknam

+2

En supposant que la même action ait plusieurs instructions 'return' qui sont utilisées pour envoyer' string' ou 'JSON' ou' View' selon les conditions, nous devons utiliser 'Content' pour retourner la chaîne. – DhruvJoshi

4
public ActionResult GetAjaxValue() 
{ 
    return Content("string value"); 
} 
+8

mieux expliquer plus pendant la réponse – Mostafiz

1
public JsonResult GetAjaxValue() 
{ 
    return Json("string value", JsonRequetBehaviour.Allowget); 
} 
-1

il y a 2 façon de retourner une chaîne de contrôleur à la vue

premier

vous pouvez retourner la chaîne seulement, mais ne sera pas inclus dans html fichier il sera jus string apparaître dans le navigateur


seconde

pourrait retourner une chaîne comme objet de vue Résultat

est ici les exemples de code pour ce faire

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); 

    } 
} 

dans le fichier en vue d'exécuter AutoProperty il vous dirigera vers Résultat vue et envoie de
code pour voir

<!--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> 

je le lance à http://localhost:60227/Home/AutoProperty