ASP.NET MVC mengembalikan tampilan kosong

112

Apa cara paling alami untuk menampilkan ActionResult kosong (untuk tindakan anak)?

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

   return View(RealView);
}

Satu opsi yang dapat saya lihat adalah membuat tampilan kosong dan mereferensikannya di EmptyView ... tetapi mungkinkah ada opsi bawaan?

SiberianGuy
sumber
Bukankah View () memiliki opsi untuk mengembalikan teks saja? Jika demikian, kirim string kosong.
Andy Hunt

Jawaban:

228

mengembalikan instance dari kelas EmptyResult

 return new EmptyResult();
archil
sumber
1
Dalam tindakan yang menghasilkan EmptyResult, apakah itu sama dengan melakukan return null?
Robin Maben
1
@RobinMaben: Tidak, null tidak akan mengembalikan objek dari metode ini. Namun EmptyResult akan melakukannya.
cederlof
1
Saya akan kembali nullkarena secara internal, itu akan menggunakan internal EmptyResult.Instanceyang tidak dapat Anda akses sendiri. Ini menyimpan instansiasi berulang dari objek tanpa kewarganegaraan.
Jorrit Schippers
8

jika Anda tidak ingin mengembalikan apa pun, Anda dapat melakukan sesuatu seperti

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

   return View(RealView);
Muhammad Adeel Zahid
sumber
16
kembalikan baru EmptyResult (); adalah pendekatan yang disukai
RickAndMSFT