Как взять дополнительную переменную выбранного объекта из другой таблицы в ASP.NET - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть список людей. Администратор может создавать, редактировать или удалять его. Person.cs в моделях

namespace Site.Models
{
    public class Person
    {
        public int Id { get; set; }
        public string Name { get; set; } = "";
        public string Image { get; set; } = "";
    }
}

Также у меня есть список новостей. News.cs в моделях

namespace Site.Models
{
    public class News
    {
        public int Id { get; set; }
        public string Title { get; set; } = "";
        public string Body { get; set; } = "";
        public string Person { get; set; } = "";
    }
}

NewsController.cs

 [HttpGet]
        public IActionResult EditNews(int? id, string[] countries)
        {
            var persons = _repo.GetAllStaff();
            ViewBag.Persons = new SelectList(persons , "Name", "Name");
            if (id == null)
                return View(new News());
            else
            {
                var news= _repo.GetNews((int)id);
                return View(news);
            }

EditNews.cs

<div>
    <form asp-controller="Panel" asp-action="EditNews" method="post">
        <input asp-for="Id" type="hidden" />
        <div>
            <label>Title</label>
            <input asp-for="Title" />
        </div>
        <div>
            <label asp-for="Person"></label>
            <select asp-for="Person" asp-items="ViewBag.Persons"></select>
        </div>
        <div>
            <label>Body</label>
            <textarea id="editor" asp-for="Body"></textarea>
        </div>
        <input type="submit" value="Submit" />
    </form>
</div>

Когда я создаю человека, я добавляю его имя и фотографию. Когда я создаю новости, я добавляю заголовок, текст в теле и человека, который является автором этого. Список лиц загружается из таблицы Персоны (из предыдущего предложения). Я выбираю человека. Хотелось бы, чтобы в новостях отображалось не только имя человека, но и фотография выбранного человека. Как я могу это сделать?

1 Ответ

0 голосов
/ 02 апреля 2020

В данный момент ваше представление не имеет контекста того, что такое человек. Единственное, что вам нужно, это пара ключевых значений имени человека.

Я бы предложил начать с добавления результата: _repo.GetAllStaff (); к сумке для просмотра и go оттуда.

Посмотрите на этот ответ здесь

...