2

我对 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; }
}

当我为这个类创建一个新的控制器时,我使用实体框架脚手架选项选择了具有读/写操作和视图的 MVC 控制器。在 Create.cshtml 中,它跳过了为我的所有 1:1 和 1:M 属性(BicycleManufacturer、BicycleType 等)创建编辑器。理想情况下,我希望 VS 为这些属性创建下拉列表编辑器。

是否可以为这些属性创建编辑器,还是我需要手动完成?

4

1 回答 1

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/

干杯。

于 2013-02-19T06:19:30.963 回答