ASP.NET MVC renvoie une vue vide


112

Quelle est la manière la plus naturelle de renvoyer un ActionResult vide (pour une action enfant)?

public ActionResult TestAction(bool returnValue)
{
   if (!returnValue)
     return View(EmptyView);

   return View(RealView);
}

Une option que je peux voir est de créer une vue vide et de la référencer à EmptyView ... mais peut-être y a-t-il une option intégrée?


View () n'a-t-il pas la possibilité de renvoyer uniquement du texte? Si tel est le cas, envoyez une chaîne vide.
Andy Hunt

Réponses:


228

retourne l'instance de la classe EmptyResult

 return new EmptyResult();

1
Dans une action qui revient EmptyResult, est-ce la même chose que faire return null?
Robin Maben

1
@RobinMaben: Non, null ne retournerait pas un objet de la méthode. EmptyResult le fera cependant.
cederlof

1
Je reviendrai nullcar en interne, il utilisera le internal EmptyResult.Instanceauquel vous ne pouvez pas accéder vous-même. Cela évite l'instanciation répétée d'un objet sans état.
Jorrit Schippers


8

si vous ne voulez rien retourner, vous pouvez faire quelque chose comme

if (!returnValue)
     return Content("");

   return View(RealView);

16
return new EmptyResult (); est l'approche préférée
RickAndMSFT
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.