Ladislav对实体关系是正确的。如果你想让它工作,你将不得不从关联表中删除Id字段。另外,在您的数据模型中,每个实体都需要具有引用其他集合的导航属性:
public partial class Driver
{
public int Id { get; set; }
// other properties
[UIHint("Licenses")]
public virtual ICollection<License> Licenses { get; set; }
}
与Driver类相同。但是,我认为尝试使用放射性按钮不会很好。在我正在进行的一个项目中,我们有几种这种类型的情况,我们使用一个列表框。
在您希望用户选择的集合上使用UIHint,并创建一个局部视图来保存该类型集合的列表框。所以在Licenses.cshtml
- 必须〜/查看/共享/ EditorTemplates创建/你就会有这样的事情:
@inherits System.Web.Mvc.WebViewPage<IList<License>>
@Html.ListBoxFor(x => x,
new MultiSelectList((List<License>)ViewBag.LicenseAll,
"Id",
"LicenseName",
Model))
在你的控制器,设置ViewBag.LicenseAll
所有可能的许可选项。在驱动程序编辑视图,您只要致电:
@Html.EditorFor(m=>m.Licenses)
的UIHint你的模型设定会找到正确的局部视图,并显示所有许可选项和选择所有的当前驾驶员设定的。
我知道这个答案并不直接回答你的问题(使用单选按钮),但考虑到你的情况,这是我会推荐的。
如果您对关系数据库有任何最少的理解,您应该知道这些表之间应该是什么关系。如果您没有这么简单的理解,请停止当前的任务,然后阅读关系数据库的一些启动任务,否则您将无法完成项目。 – 2011-05-28 10:06:18
是的,我有这种理解。但不知道如何在特定用户的单选按钮中显示 – coure2011 2011-05-28 10:14:03
您必须加载来自许可证的所有记录 - 定义您的单选按钮。然后,您必须使用其DriverLicences/Licenses加载用户并设置单选按钮以更正值。 – 2011-05-28 10:16:13