CRUD Просмотры для многих-многих отношений, флажки - PullRequest
4 голосов
/ 05 февраля 2012

Мне трудно понять, что мне нужно сделать, чтобы заставить это работать. Я изучаю ASP.NET MVC CodeFirst с EF. Если я создаю модель, я могу просто добавить контроллер для этой модели и добавить строительные леса для создания представлений, которые автоматически заботятся о CRUD. Но теперь у меня есть две модели, Project и Category. Они имеют отношение многие ко многим, и база данных спроектирована правильно с ассоциативной таблицей без необходимости создания отдельной модели для нее. Код для моделей это ....

public class Project
{
    public int ProjectId { get; set; }
    public string Title { get; set; }
    public string Description { get; set; }
    public string Testimonial { get; set; }

    public virtual ICollection<Image> Images { get; set; }
    public virtual ICollection<Category> Categories { get; set; }

    public Project()
    {
        Categories = new HashSet<Category>();
    }
}

public class Category
{
    public int CategoryId { get; set; }
    public string Name { get; set; }

    public ICollection<Project> Projects { get; set; }

    public Category()
    {
        Projects = new HashSet<Project>();
    }
}

Итак, я добавляю свои контроллеры и делаю строительные леса. Я вхожу и создаю свои категории просто отлично. Но когда дело доходит до моего представления Projects / Create, я хотел бы сделать так, чтобы все категории отображались в виде флажков. Кроме того, я хотел бы убедиться, что по крайней мере одна категория выбрана, прежде чем можно будет отправить форму для создания проекта. Как бы я это сделал?

1 Ответ

9 голосов
/ 06 февраля 2012

Пример использования флажков в аналогичном сценарии см. Добавление назначений курса на страницу редактирования преподавателя в этом учебном пособии:

http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/updating-related-data-with-the-entity-framework-in-an-asp-net-mvc-application

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