ASP.NET MVC ส่งคืนมุมมองว่างเปล่า


112

วิธีใดเป็นวิธีที่เป็นธรรมชาติที่สุดในการคืนค่า ActionResult ที่ว่างเปล่า (สำหรับการกระทำของเด็ก)

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

   return View(RealView);
}

ตัวเลือกหนึ่งที่ฉันเห็นคือสร้างมุมมองว่างและอ้างอิงที่ EmptyView ... แต่อาจมีตัวเลือกในตัวหรือไม่?


ไม่ View () มีตัวเลือกในการส่งคืนข้อความหรือไม่? ในกรณีนี้ให้ส่งสตริงว่าง
Andy Hunt

คำตอบ:


228

ส่งคืนอินสแตนซ์ของคลาส EmptyResult

 return new EmptyResult();

1
ในการกระทำที่กลับEmptyResultมาจะเหมือนกับการทำreturn nullหรือไม่?
Robin Maben

1
@RobinMaben: ไม่ null จะไม่ส่งคืนวัตถุจากวิธีการ EmptyResult จะอย่างไรก็ตาม
cederlof

1
ฉันจะกลับมาnullเพราะภายในจะใช้สิ่งinternal EmptyResult.Instanceที่คุณไม่สามารถเข้าถึงได้เอง สิ่งนี้จะบันทึกการสร้างอินสแตนซ์ซ้ำ ๆ ของวัตถุไร้สัญชาติ
Jorrit Schippers

18

คุณสามารถคืนค่าEmptyResultเพื่อส่งคืนมุมมองที่ว่างเปล่า

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

nullนอกจากนี้คุณยังสามารถเพียงแค่กลับ ASP.NET จะตรวจสอบชนิดการส่งคืนnullและจะกลับ EmptyResult สำหรับคุณ

public ActionResult Empty()
{
    return null;
}

ดูเอกสาร MSDN สำหรับ ActionResultสำหรับรายการประเภท ActionResult ที่คุณสามารถส่งคืนได้


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.