【发布时间】:2011-02-26 16:52:37
【问题描述】:
我有两个类,一个是 Entry 和 Paradigm。 Entry 类有一个 ParadigmId 和一个 Paradigm 属性。所以在我看来我有@Model.Entry.Paradigm。如何使用 Paradigm 模型的新语法构建 DropDownListFor?
// Entry Model
[Bind(Exclude = "EntryId")]
public class Entry
{
[ScaffoldColumn(false)]
public int EntryId { get; set; }
.
[Display(Name = "Type")]
public int ParadigmId { get; set; }
public virtual Paradigm Paradigm { get; set; }
}
// Paradigm Model
public class Paradigm
{
[ScaffoldColumn(false)]
public int ParadigmId { get; set; }
[Required]
public string Name { get; set; }
public List<Entry> Entries { get; set; }
}
在我看来,我有@Html.DropDownListFor(model => model.Entry.ParadigmId, model.Entry.Paradigm)。但是该模型的类型是 Paradigm 而不是 IEnumerable。由于 Paradigm 是我的课程的一部分(对于 Entity Framework Code First),我不需要使用大多数示例中列出的单独的 ViewData/ViewBag。
我在 Google 上搜索了一下,发现有人使用 Helper/Extension 方法将模型转换为 SelectList。在我的模型中使用 DropDownListFor 的最佳方式是什么?
@* Create View *@
<div class="editor-label">
@Html.LabelFor(model => model.Entry.ParadigmId)
</div>
<div class="editor-field">
@Html.DropDownListFor(model => model.Entry.ParadigmId, model.Entry.Paradigm)
@Html.ValidationMessageFor(model => model.Entry.ParadigmId)
</div>
【问题讨论】:
标签: asp.net-mvc entity-framework-4 razor