Отображение модели в _Layout и создание списка избранного в.NET Core 2+

Первое размещение.

Я довольно новичок в программировании и пытаюсь создать веб-сайт для размещения веб-приложений, которые я создаю. В настоящее время у меня есть модель, представление и контроллер для проецирования содержимого моей таблицы приложений. Эти приложения размещены в другом месте, поэтому плитки, показанные на скриншоте ниже, просто ссылаются на другие места. Я хотел бы включить способ отображения недавно использованных приложений в ящике (код, размещенный в _Layout).

_Layout Drawer:

Layout Drawer

Я хотел бы начать с отображения ЛЮБЫХ данных модели в ящике _Layout. Если я просто добавлю код приложения View в _Layout, вот так:

@_Layout, located beneath navbar code and above RenderBody()@
@model IEnumerable<Apps>
<div id="footerSlideContainer">
    <div id="footerSlideButton"></div>
    <div id="footerSlideContent">
        <div id="footerSlideText">

            <div class="parenttile">

                @foreach (var Apps in Model)
                {
                    <a href="http://@Apps.AppLink" target="_blank">
                        <div class="tile">
                            <div></div>
                            <div class="tilemid">
                                <div></div>
                                <div>
                                    <img class="tileimage" src="@Apps.AppImage" alt="@Apps.AppName" />
                                </div>
                                <div></div>
                            </div>
                            <div class="tilebot">
                                @Apps.AppName
                            </div>
                        </div>
                    </a>
                }
            </div>
            <h3>Recently Used Apps</h3>
            <p>This section will store all of your most recently used apps. It stays on the screen until you click the drawer icon.</p>
        </div>
    </div>
</div>

... Я получаю следующую ошибку в Debug в строке @foreach: NullReferenceException: ссылка на объект не установлена ​​на экземпляр объекта..net core. Я исследовал эту ошибку здесь: что такое ошибка NullException и как ее исправить?

  1. Я понимаю, что метод действия предшествует модели. Если бы я использовал приведенный выше код, я бы предположил, что мне нужно внедрить модель в метод действия, но есть ли у _layout контроллер?
  2. Я исследовал здесь: ASP MVC Razor Pass модель для просмотра. Это выглядит как самое близкое решение, но я был бы признателен, если бы кто-то провел меня через него.
  3. Наконец, я заметил, что могу использовать ViewComponent ViewComponent в ASP.NET Core. Я мог бы использовать некоторую помощь в реализации этого решения.

Какое из этих решений будет работать / работать лучше?

Тогда есть проблема создания фаворитов. Я думаю, что это немного проще, так как этот недавно просмотренные элементы содержат всю информацию, которая мне нужна.

Спасибо за любую помощь - я включил мою модель и код контроллера ниже:

Модель:

    public class Apps
{

    public int AppID { get; set; }
    public string AppName { get; set; }
    public string AdGroup { get; set; }
    public string AppDescription { get; set; }
    public string AppLink { get; set; }
    public string AppImage { get; set; }

}

Контроллер (используя жестко закодированные, фиктивные данные, пока я не перешел на дБ)

public class AppsController : Controller
{
    private List<Apps> _apps;

    public AppsController()
    {
        _apps = new List<Apps>();

        //creating test Apps model 
        _apps.Add(new Apps
        {
            AppID = 1,
            AppName = "Test App 1",
            AdGroup = "Group 1",
            AppDescription = "First test app.",
            AppLink = "www.google.com",
            AppImage = "/images/image1.png"

        }); //et al
    }


    public IActionResult Index()
    {
        return View(_apps);
    }
}

0 ответов

Другие вопросы по тегам