Чистый способ вернуть пустой частичный вид mvc

В файле cshtml, на основе условия, какой лучший способ вернуть пустое частичное представление?

Сейчас у меня есть:

@if(Model.Count() > 0)
{
  loooonng partial view block of markup code
}

Как я могу сделать это, чтобы выглядеть ближе к этому:

@if(Model.Count() == 0)
{
  render an empty partial view
}

  loooonng partial view block of markup code goes here   <- This will obviously get executed only if Model.Count() > 0

Спасибо заранее!

Ответы

Ответ 1

Я использовал

return Content("");

и работает нормально.

Ответ 2

Не уверен, что вам все еще нужен ответ, но я столкнулся с этой проблемой, и вот что я сделал в представлении:

@if(Model.Count() == 0)
{
return; // a simple return will stop execution of the rest of the View
}

На уровне контроллера я создал новый класс и вернул его в свое действие:

public class EmptyPartialViewResult : PartialViewResult
{
    public override void ExecuteResult(ControllerContext context)
    {
    }
}

Ответ 3

Если вы возвращаете PartialViewResult, я обнаружил, что в контроллере вы можете использовать

return default(PartialViewResult);

или

return null;

без проблем. Единственное, что я могу подумать, это использовать

var partialView = Html.Action("Action", "Controller");

в вашем представлении, тогда вам нужно будет проверить значение null. Html.RenderAction кажется, что это не проблема.

Ответ 4

Используйте EmptyResult класс:

return new EmptyResult();