我是MVC 4的新手,我有以下课程:
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; }
}
当我为这个类创建一个新的Controller时,我使用Entity Framework scaffolding选项选择了具有读/写操作和视图的 MVC控制器。在Create.cshtml中,它跳过为我的所有1:1和1:M属性(BicycleManufacturer,BicycleType等)创建编辑器。理想情况下,我希望VS为这些属性创建下拉列表编辑器。
是否可以为这些属性创建编辑器,还是需要手动执行?
答案 0 :(得分:4)
复杂的对象需要一些帮助。值得庆幸的是,这并不难做到,MVC框架在这方面可以自定义。
您要做的第一件事是创建视图来处理编辑和显示。它们位于Views \ Shared。
下的编辑器和显示模板文件夹中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/
干杯。