Отображение модели в _Layout и создание списка избранного в.NET Core 2+
Первое размещение.
Я довольно новичок в программировании и пытаюсь создать веб-сайт для размещения веб-приложений, которые я создаю. В настоящее время у меня есть модель, представление и контроллер для проецирования содержимого моей таблицы приложений. Эти приложения размещены в другом месте, поэтому плитки, показанные на скриншоте ниже, просто ссылаются на другие места. Я хотел бы включить способ отображения недавно использованных приложений в ящике (код, размещенный в _Layout).
_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 и как ее исправить?
- Я понимаю, что метод действия предшествует модели. Если бы я использовал приведенный выше код, я бы предположил, что мне нужно внедрить модель в метод действия, но есть ли у _layout контроллер?
- Я исследовал здесь: ASP MVC Razor Pass модель для просмотра. Это выглядит как самое близкое решение, но я был бы признателен, если бы кто-то провел меня через него.
- Наконец, я заметил, что могу использовать 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);
}
}