Отображение элементов из базы данных в - PullRequest
0 голосов
/ 20 марта 2020

Как вывести элементы из базы данных? Существует система создания новостей, где я должен выбрать категорию. EditNews.cs

@model News
<div>
    <form asp-controller="Panel" asp-action="EditNews" method="post">
        <input asp-for="Id" type="hidden" />
        <div>
            <label>Head</label>
            <input asp-for="Head" />
        </div>
        <div>
            <label>Category</label>
           <select asp-for="??" asp-items="??"></select>
        </div>
        <div>
            <label>Body</label>
            <textarea id="editor" asp-for="Body"></textarea>
        </div>
        <input type="submit" value="Submit" />
    </form>
</div>

News.cs (в моделях)

namespace Project.Models
{
    public class News
    {
        public int Id { get; set; }
        public string Head { get; set; } = "";
        public string Body { get; set; } = "";
        public string Category { set; get; } = "";
    }
}

Также у меня есть Category.cs (в моделях тоже таблица dbo.Categories)

namespace Project.Models
{
    public class Category
    {
        public int Id { get; set; }
        public string Title { get; set; } = "";
    }
}

Я сделал отображение категорий на другой странице с помощью ViewComponent (Components / CategoryShowing.cs)

namespace Project.Components
{
    public class CategoryShowing : ViewComponent
    {
        private readonly Project.Data.AppDbContext _db;

        public CategoryShowing(Project.Data.AppDbContext context)
        { _db = context; }

        public IViewComponentResult Invoke()
        {
            var categories = _db.Categories.ToList();
            return View(categories);
        }
    }
}

Представления / Компоненты / CategoryShowing / Default.cs html

@model IEnumerable<Category>
<div>
    <ul>
        @foreach (var category in Model)
        {
            <li>
                <a asp-controller="Categories" asp-action="Category" asp-route-id="@category.Id">
                    @Html.Raw(category.Title)
                </a>
            </li>
        }
    </ul>
</div>

Подводя итог, я сделал показ категорий на другой странице. Однако мне это нужно в "select asp -for". Как я могу это реализовать? Может быть, это правильный путь

<select asp-for="Id" asp-items="(new SelectList(Model.Category,"Id","Title"))"></select>

Но, какой-то код должен быть написан где-то еще, но я не знаю, где и как.

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