Я сейчас нахожусь в процессе создания общего представления «Редактировать / Создать» для моего проекта по обзору игр и столкнулся с проблемой.Каждая игра может быть названием на различных платформах.Я обозначил это как отношение многие ко многим в моей модели EF4.На мой взгляд, я хотел бы иметь ряд флажков с именами каждой платформы, а для представления «Правка» установить правильные флажки.
Я могу легко создавать флажки с помощью помощника HTML,Моя самая большая проблема - выяснить, как указать помощнику включить isChecked на правильных значениях платформы.Вот что у меня есть:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<HandiGamer.ViewModels.AdminGameReviewViewModel>" %>
<p>
<%: Html.LabelFor(model => model.GameData.GameTitle) %>
<%: Html.TextBoxFor(model => model.GameData.GameTitle) %>
<%: Html.ValidationMessageFor(model => model.GameData.GameTitle) %>
</p>
<p>
<%: Html.LabelFor(model => model.Genres) %>
<%: Html.DropDownList("Genre", new SelectList(ViewData["Genres"] as IEnumerable, "GenreID", "Name", Model.GameData.GenreID) %>
</p>
<p>
<%: Html.LabelFor(model => model.Platforms) %>
<% foreach(var item in Model.Platforms) { %>
<%: Html.CheckBox(item.Name) %>
<% } %>
</p>
И моя модель вида:
public class AdminGameReviewViewModel
{
public Game GameData { get; set; }
public List<Genre> Genres { get; set; }
public List<Platform> Platforms { get; set; }
}
Заполнено:
public ActionResult EditReview(int id)
{
var game = _siteDB.Games.Include("Genre").Include("Platforms").Include("Content").Single(g => g.GameID == id);
var genres = _siteDB.Genres.ToList();
var platforms = _siteDB.Platforms.ToList();
var model = new { GameData = game, Genres = genres, Platforms = platforms };
return View(model);
}
Итак, мне действительно нужнотолчок в правильном направлении с помощью логики, чтобы определить, какие ячейки следует отметить.
Спасибо.