2013-02-19 58 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/

干杯。