【发布时间】:2016-12-23 16:24:26
【问题描述】:
我正在创建一个新的 ASP.NET MVC(带有实体框架)项目,但我有点难以理解在面对这个“问题”时我应该怎么做:
假设我有 foo 模型:
public class foo
{
public int ID { get; set; }
public virtual Book {get; set;}
public int BookID {get; set; }
public virtual ICollection<Theme> Themes {get; set;}
/* Now what ?!? */
}
所以让我试着解释一下:
我了解到,为了简单地获取下拉列表以获取选择元素并将其与他的“父”模型绑定的 View-Controller 过程,我必须为 Book ID 设置一个“ID”字段 以及与 Book 模型的实际关系的虚拟属性。我真的不知道这是否是开始的“最佳”方法。
然后我必须将其他模型类型的“列表”添加到我的 Foo 模型中。那么现在我该怎么办?在视图方面,我正在考虑创建一个带有滚动条的复选框列表,但我的主要问题仍然是弄清楚如何处理“模型关系问题”。
谢谢。
【问题讨论】:
-
如果您不打算对模型进行子类型化,那么标记属性
virtual是没有意义的。 -
我认为这种情况下的“虚拟”具有与 EF 相关的特殊含义。不过不确定....我从 C++ 中了解虚拟,如果您感到困惑(也许),我不知道?
-
哦,你没有提到你在使用 EF。是的,它在那里有效果。
-
我的错。我会编辑。
-
提示:不要使用 Entity Framework 实体/域模型类作为视图模型。而是为您的视图提供专用的视图模型类。 ViewModel 应该代表 View(和浏览器)和控制器之间的 2-way 数据。对于单向数据(例如 DropDownList 项),请使用
ViewData或ViewBag。
标签: c# asp.net entity-framework model-view-controller