ASP.NET MVC - 脚手架下拉列表

时间:2014-07-23 16:49:16

标签: asp.net-mvc-4 asp.net-mvc-scaffolding

我正在尝试学习如何使用ASP.NET MVC 4和Entity FrameWork 5,我对下拉列表的脚手架感到有些困惑。

我有三个班级:

public class ScopeType
{
    public int ScopeTypeId { get; set; }

    [Required]
    public string Type { get; set; }
}

public class ScopeManufacturer
{
    public int ScopeManufacturerId { get; set; }

    [Required]
    [Display(Name="Manufacturer Name")]
    public string Name { get; set; }
}

public class Scope
{
    public int ScopeId { get; set; }

    [Required]
    public ScopeManufacturer ScopeManufacturer { get; set; }

    [Required]
    public string Name { get; set; }

    [Required]
    public ScopeType ScopeType { get; set; }

    [Required]
    public int Aperture { get; set; }

    [Required]
    public int FocalLength { get; set; }
}

基本上,前两个类只是我希望出现在' Scope'的下拉列表中的值列表。创建/编辑表单。这是一对一的关系。

我构建了解决方案,然后添加了scaffolded控制器和视图。不幸的是,对于' Scope'控制器和视图,ScopeType和ScopeManufacturer导航属性被忽略;没有生成下拉列表。

然后我在谷歌的例子中发现,人们通过创建整数属性来描述项目之间的关系,其名称与相关事物上的Id相同。因此,我删除了控制器和视图,并再次尝试使用:

public class Scope
{
    public int ScopeId { get; set; }

    [Required]
    public int ScopeManufacturerId { get; set; }

    [Required]
    public string Name { get; set; }

    [Required]
    public int ScopeTypeId { get; set; }

    [Required]
    public int Aperture { get; set; }

    [Required]
    public int FocalLength { get; set; }
}

这对我来说仍然没有下拉列表 - 相反,它给了我2个额外的字段供我输入整数。

我做错了什么,或者我错误地认为MVC 4中的脚手架会为这样的1对1关系生成下拉列表?

0 个答案:

没有答案