【发布时间】:2010-10-25 10:25:38
【问题描述】:
我目前正在为我的游戏评论项目创建共享编辑/创建视图,但遇到了问题。每个游戏都可以是各种平台上的标题。我在我的 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);
}
所以,我真的只需要用逻辑推动正确的方向来确定应该选中哪些框。
谢谢。
【问题讨论】:
标签: asp.net-mvc-2 entity-framework-4 views