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?


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

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

16
return new EmptyResult (); ist der bevorzugte Ansatz
RickAndMSFT
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.