116 votes

ASP.NET MVC renvoie une vue vide

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

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

   return View(RealView);
}

Une option que je vois 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 ?

0 votes

View() n'a-t-il pas une option pour ne retourner que du texte ? Si c'est le cas, envoyez une chaîne vide.

232voto

archil Points 21369

Retourner une instance de Classe EmptyResult

 return new EmptyResult();

1 votes

Dans une action qui renvoie EmptyResult est-ce la même chose que de faire return null ?

1 votes

@RobinMaben : Non, null ne renverra pas un objet de la méthode. En revanche, EmptyResult le fera.

1 votes

Je reviendrais null parce qu'en interne, il utilisera l'option internal EmptyResult.Instance que vous ne pouvez pas accéder vous-même. Cela évite l'instanciation répétée d'un objet sans état.

21voto

Nips Points 772

Vous pouvez retourner EmptyResult pour retourner une vue vide.

public ActionResult Empty()
{
    return new EmptyResult();
}

Vous pouvez aussi simplement retourner null . ASP.NET sera détecter le type de retour null et retournera un EmptyResult pour vous .

public ActionResult Empty()
{
    return null;
}

Ver Documentation MSDN pour ActionResult pour la liste des types d'ActionResult que vous pouvez renvoyer.

8voto

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

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

   return View(RealView);

16 votes

Return new EmptyResult() ; est l'approche préférée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X