Asp.net-Mvc
如何從強類型視圖中隱藏實體框架實體屬性?
我在我的 ASP.NET MVC 4.0 應用程序中使用實體框架,我想知道如何防止或隱藏我的實體中的欄位在我的強類型視圖中生成?現在,我不想要的視圖上正在生成幾個主鍵欄位和時間戳欄位。
我知道將屬性設置
internal為與public作品相反,但我不確定這將產生的總體下游影響。我更喜歡在屬性上使用數據註釋,但我嘗試過的那些可以防止控制器腳手架或將它們作為隱藏欄位。我更喜歡它們保持公開狀態,但只是不在強類型視圖中生成。編輯:
要生成強類型視圖,請在 Visual Studio 中添加一個新的“視圖”,並在對話框中選擇該視圖建模的類。這反過來將創建一個視圖,其中包含由類的屬性表示的所有控制項。例如
LastName創建一個欄位如下:@Html.EditorFor(model => model.FirstName)
回答問題
屬性
[ScaffoldColumn(false)]或者
[Display(AutoGenerateField=false)]在不需要的屬性將阻止設計人員為這些屬性生成腳手架欄位之前。
要通過數據註釋從 UI 中隱藏屬性,請使用
[ScaffoldColumn(false)]並且它們將被編輯器模板忽略。