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