ASP.NET MVC повертає порожній вигляд


112

Який найприродніший спосіб повернути порожній ActionResult (для дитячих дій)?

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

   return View(RealView);
}

Я можу побачити один варіант створення порожнього перегляду та посилання на нього в EmptyView ... але може бути якийсь вбудований варіант?


Чи не переглядає () версія для повернення лише тексту? Якщо так, надішліть порожній рядок.
— Енді Хант

Відповіді:


227

повернути екземпляр класу EmptyResult

 return new EmptyResult();

1
У дії, яка повертається EmptyResult, це те саме, що робити return null?
— Робін Мабен

1
@RobinMaben: Ні, null не поверне об'єкт із методу. EmptyResult проте буде.
— cederlof

1
Я повернусь, nullтому що внутрішньо він використовуватиме те, до internal EmptyResult.Instanceчого ви не можете отримати доступ. Це економить неодноразову інстанцію об'єкта без громадянства.
— Хорріт Шипперс

18

Ви можете повернути EmptyResult, щоб повернути порожній вигляд.

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

Ви також можете просто повернутися null. ASP.NET виявить тип повернення nullі поверне EmptyResult для вас .

public ActionResult Empty()
{
    return null;
}

Перегляньте документацію MSDN для ActionResult для списку типів ActionResult, які можна повернути.


8

якщо ви нічого не хочете повернути, можете зробити щось на кшталт

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

   return View(RealView);

16
повернути новий EmptyResult (); є кращим підходом
— RickAndMSFT
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.