2013-02-19 54 views
2

我很新的MVC與4和我有下面的類:MVC 4 - 腳手架 - 爲什麼跳過我的1:1和1:M屬性?

public class BicycleSellerListing 
{ 
    public int BicycleSellerListingId { get; set; } 
    public UserProfile UserProfile { get; set; } 
    public System.DateTimeOffset ListingDate { get; set; } 
    public double ListingPrice { get; set; } 
    public string BicycleModel { get; set; } 
    public string Color { get; set; } 
    public string Comments { get; set; } 
    public BicycleManufacturer BicycleManfacturer { get; set; } 
    public BicycleType BicycleType { get; set; } 
    public BicycleFrameSize BicycleFrameSize { get; set; } 
    public DateTime ModelYear { get; set; } 
    public ICollection<BicycleAttribute> BicycleAttributeList { get; set; } 
} 

當我創建了這個類的一個新的控制器,我選擇了MVC控制器的讀/寫操作和視圖,使用實體框架腳手架選項。在Create.cshtml中,它跳過了爲我所有的1:1和1:M屬性(BicycleManufacturer,BicycleType等)創建編輯器。理想情況下,我希望VS爲這些屬性創建下拉列表編輯器。

是否可以爲這些屬性創建編輯器,還是需要手動執行?

+0

您必須手動完成。現有的模板不知道如何爲「自定義」類型創建編輯器。 – 2013-02-19 00:10:30

回答

4

複雜的物體需要一些幫助。值得慶幸的是,這並不難,MVC框架在這方面是非常可定製的。

您要做的第一件事就是創建視圖來處理編輯和顯示。這些放在Views \ Shared下的Editor和Display模板文件夾中。

https://github.com/MisterJames/BootstrappingMvc/tree/master/BootstrappingMvc/Views/Shared

接下來,你要在你的視圖模型裝點你的屬性與UIHint告訴MVC使用什麼樣的看法。

https://github.com/MisterJames/BootstrappingMvc/blob/master/BootstrappingMvc/Models/MoviePass.cs

這將有助於充分利用你的1護理:1。你會想看看像MvcScaffolding處理列表項,它做了相當不錯的工作

有一個完整的演練在這裏:

http://jameschambers.com/2012/07/bootstrapping-mvc-say-no-to-checkboxes/

乾杯。