ASP.NET MVC - является ли частичное представление правильным местом для проверки, является ли модель нулевой или пустой? - PullRequest
0 голосов
/ 21 января 2011

У меня есть следующее частичное представление:

@model IEnumerable<Foo>

<div id="foo">
    @foreach (var foo in Model)
    {
        ...
    }
</div>

Если коллекция пуста или пуста, я хотел бы показать какое-то удобное для пользователя сообщение, в противном случае я бы хотел перечислить все элементы коллекции. Оболочка, я делаю эту проверку внутри частичного представления или внутри вызывающего метода? Какая лучшая практика в этом случае и почему?

Спасибо!

Ответы [ 2 ]

1 голос
/ 21 января 2011

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

0 голосов
/ 21 января 2011

Я не на 100% знаком с синтаксисом Razor, но я бы создал для этого вспомогательный интерфейс.Для простоты просмотра я использую следующие «правила»: если я когда-либо получу оператор if или цикл, то я создам помощник пользовательского интерфейса.

У меня есть статический класс для каждого контекста.Допустим, у меня есть музыкальный магазин ... тогда у меня будет класс с именем AlbumHelper

public static class AlbumHelper : {possible inheritance\
{
    public static string CreateAlbumList(Model model)
    {
        // TODO: create list here using technique you prefer
        // <ul><li>empty</li></ul>
        return string.Empty;
    }
}

Тот, который я бы назвал используя (не забудьте добавить пространство имен в ваш Web.config):

<%= AlbumHelper.CreateAlbumList(Model) %>

Если бы это обычно использовалось control , тогда я бы создал расширение, чтобы оно создавалось с использованием этой строки.

<%= Html.AlbumList(Model) %>

Вот ссылка к короткому учебнику по созданию расширения

...