ASP.NET MVC gibt eine leere Ansicht zurück

112

Was ist der natürlichste Weg, ein leeres ActionResult zurückzugeben (für untergeordnete Aktionen)?

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

   return View(RealView);
}

Eine Option, die ich sehen kann, besteht darin, eine leere Ansicht zu erstellen und auf EmptyView zu verweisen. Gibt es möglicherweise eine integrierte Option?

SiberianGuy
quelle
Hat View () keine Option, nur Text zurückzugeben? Wenn ja, senden Sie eine leere Zeichenfolge.
Andy Hunt

Antworten:

227

Rückgabe der Instanz der EmptyResult-Klasse

 return new EmptyResult();
Archil
quelle
1
Ist es bei einer Aktion, die zurückkehrt EmptyResult, dasselbe wie bei einer Aktion return null?
Robin Maben
1
@RobinMaben: Nein, null würde kein Objekt von der Methode zurückgeben. EmptyResult wird jedoch.
Cederlof
1
Ich würde zurückkehren, nullweil es intern das verwendet, auf das internal EmptyResult.InstanceSie nicht zugreifen können. Dies erspart die wiederholte Instanziierung eines zustandslosen Objekts.
Jorrit Schippers
8

Wenn Sie nichts zurückgeben möchten, können Sie so etwas tun

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

   return View(RealView);
Muhammad Adeel Zahid
quelle
16
return new EmptyResult (); ist der bevorzugte Ansatz
RickAndMSFT