[英]Entity Framework, Razor, DB first: Change column used for foreign key dropdown texts
我正在使用Razor控制器設置一個簡單的網站,以用作內部GUI與數據庫的各個部分進行接口。 在很大程度上,這很順利,但是,對於外鍵,顯然,被引用表的第一列(按字母順序排序時)成為默認表示(即,編輯時下拉框中顯示的內容)。
例如,我有一個Campaigns
表,該表具有Companies
的外鍵。 在顯示Campaigns.CompanyId
時,我想使用一個Companies.Name
列。 但是,Razor顯然會使用Companies.AccessKey
(這非常難以理解)來自動代表第一個可用的公司。
我正在尋找一種方法來指定用於表示行的列,希望不更改自動生成的文件。
這讓我發瘋了,盡管我認為這是一個普遍的問題,但是由於某種原因,我的谷歌搜索沒有給出任何答案:(
我不知道從模型方面進行設置的方法,但是可以在視圖中解決。
更換
@Html.DropDownList("Fk_Company", String.Empty)
同
@Html.EditorFor(m => m.Company, "Company") // adapt namings to fit your needs
並將名為Company
的局部視圖添加到/Views/Shared/EditorTemplates
其中包含以下內容:
@model Company
@Html.DropDownFor(m => m.Name, m.GetValues())
這提供了有關如何定義自定義編輯器模板的非常簡單的概述(與顯示模板相同)。
如果您將模板命名為完全相同的類型,它甚至會自動被拾取,甚至可能不需要更改生成的視圖 (我不保證它可以使用DropDownList("Fk_Company", String.Empty)
語法自動運行,但是為EditorFor
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.