這讓我瘋狂,而且我已經研究了StackOverflow上的相關帖子。MVC3腳手架不會在存在外鍵的視圖中生成下拉列表
基本上我有2個表,專輯和流派與前者有一個外來類型的外鍵。我在EF5中使用Model First進行了建模,並使用MS的T4生成器生成了上下文和類文件。因此,我的域名類別代碼:
{
using System;
using System.Collections.Generic;
public partial class Album
{
public int Id { get; set; }
public string Title { get; set; }
public decimal Price { get; set; }
public string AlbumArtUrl { get; set; }
public int GenreId {get; set;}
public virtual Genre Genre { get; set; }
}
}
你會發現,我已經加入:
public int GenreId {get; set;}
按照指導序,使腳手架創建視圖的下拉菜單和「的SelectList」代碼控制器。但它不!然而,它確實創造了,在視圖中:
<div class="editor-label">
@Html.LabelFor(model => model.GenreId)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.GenreId)
@Html.ValidationMessageFor(model => model.GenreId)
</div>
所以我真的很困惑。任何想法將不勝感激。
感謝,
埃德
附:我使用ASP.NET MVC 3工具運行VS2010 SP1更新它似乎,因爲我試圖安裝它,它說它已經安裝。
我並不完全遵循這裏...您是否期望SelectList屬性也會在Domain Class中爲您生成? – Dmitry
不,應該在控制器的創建和編輯操作中生成SelectList。另外,應該在視圖中指定HTML.DropDownListFor。我剛剛嘗試過關閉Nuget的Steven Sanderson的MVCScaffolding包,並且這種方法的工作方式與Domain規範相同,儘管我現在正在獲取數據庫更新異常,但似乎找不到我的外鍵值,但我使用正確的鍵獲取了DropDown值。我寧願讓標準MS腳手架工作。非常感謝您的回覆。 – EdB