проверка размера модели - PullRequest
0 голосов
/ 08 июня 2011

У меня был некоторый успех при передаче результатов запроса в мое представление.

К сожалению, код ASP / Razor блокируется в foreach, когда результирующий список моделей содержит 0 записей.

@foreach (var action in (List<LemonTrader.Models.Lemon>)ViewData["lemons"]) {
    <tr>
        <td>
            @Html.Encode( action.acidity)

Если нет записей, это говорит о пустом исключении.

Каков наилучший способ справиться со случаем, когда список пуст?

Я думаю, я мог бы вставить блок кода исделайте так, чтобы ветка if / then.Кажется, это немного отличается от элегантной однострочной бритвы @ foreach.

Полагаю, я мог бы положить пустой элемент в контроллер, а затем просто отобразить что-нибудь пустое.

Те, кто этого не делаеткажутся очень элегантными подходами.

Есть идеи получше?

1 Ответ

1 голос
/ 08 июня 2011

Попробуйте сделать следующее:

  1. Создайте дополнительную модель (viewmodel) в папке Models (например, LemonsView.cs) и поместите туда:

    public class LemonList { public IQueryable<Lemon> AllLemons { get; set; } }

  2. Создание контроллера (LemonController.cs)

    public ActionResult Lemons
    {
    var model = new LemonList();
    var lemons = db.Lemon;

        model.AllLemons = lemons;
        return View(model);
    }`
    
  3. В представлении:

    @using LemonTrader.Models.AllLemon S
    foreach(var item in Model.LemonList) {
    @item.Some
    }

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

Веселись!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...