我想知道爲什麼我的Html.ListBoxFor()
沒有突出顯示視圖加載時當前選定的項目。爲什麼Html.ListBoxFor()不會突出顯示當前選定的項目?
我有一個數據庫模型:
public class Issue
{
[Key]
public int IssueId { get; set; }
public int Number { get; set; }
public string Title { get; set; }
public DateTime Date { get; set; }
public virtual ICollection<Creator> Creators { get; set; }
}
public class Creator
{
[Key]
public int CreatorId { get; set; }
public string FirstName { get; set; }
public string MiddleName { get; set; }
public string LastName { get; set; }
public virtual ICollection<Issue> Issues { get; set; }
}
public class Icbd : DbContext
{
public DbSet<Issue> Issues { get; set; }
public DbSet<Creator> Creators { get; set; }
}
然後我有一個編輯模式:
public class IssueEditModel
{
public Issue Issue { get; set; }
public IEnumerable<Creator> Creators { get; set; }
public IEnumerable<Creator> SelectedCreators { get {return Issue.Creators;} }
}
然後,在我的控制器我填充IssueEditModel
:
public ActionResult EditIssue(int id = 0)
{
IssueEditModel issueEdit = new IssueEditModel{
Creators = db.Creators.ToList(),
Issue = new Issue{ Creators = new List<Creator>()},
};
if (id > 0)
{
issueEdit.Issue = db.Issues.Include("Creators").Where(x => x.IssueId == id).Single();
}
return View(issueEdit);
}
這種填充所有對象正確(據我所知,無論如何)。在我的視圖中,我正在寫一個列表框像這樣:
<%: Html.ListBoxFor(
x => x.SelectedCreators,
new SelectList(
Model.Creators,
"CreatorId",
"LastName"
)
)%>
這將列出所有選項正確,但我無法獲取當前選擇的項目來突出顯示。我幾乎想寫我自己的Html Helper,因爲這是一個簡單的操作,我不明白爲什麼這是如此困難。
爲什麼不通過Html Helper突出顯示當前項目?
啞巴問題提示:「標量」是什麼意思? – quakkels 2011-06-10 16:35:34
不知道:-) http://en.wikipedia.org/wiki/Scalar_(computing) – quakkels 2011-06-10 16:37:21
@quakkels,我已經更新了我的答案,以簡化一些事情。但是,這個想法是,ListBoxFor的第一個參數應該是一個簡單類型(int,string,...)的集合,它們表示您希望預先選擇的id。 – 2011-06-10 16:38:49