ASP.NET 4.3脚手架:添加控制器与添加视图 - 不同的行为?

时间:2012-06-13 12:29:53

标签: asp.net-mvc-3 foreign-key-relationship scaffolding html.dropdownlistfor

我正在尝试使用网络上的标准教程深入研究ASP.NET MVC 3,并且遇到了一个问题。

目前,我正在关注一本书中的样本,使用“电影”类,电影类型存储在一个单独的实体中,与外键相连(好吧,我来自德国,所以我的班级用德语命名) 。我这里只显示相关属性。这是使用DbContext的数据库第一种方法,我的模型是使用EF 4.x DbContext Generator从edmx创建的,并且edmx是从数据库自动创建的。

public partial class Film
{
    public Film() { }

    public int ID { get; set; }
    public string Titel { get; set; }
    public int GenreID { get; set; }
    public virtual Genre Genre { get; set; }
}

public partial class Genre
{
    public Genre() { }
    public int GenreID { get; set; }
    public string Name { get; set; }
}

当我使用提供DBSet的DBContext为Film类创建一个带有CRUD Views的新Controller时,我得到一个Edit视图,它使用DropdownList编辑GenreID,标记为“Genre”。精细。这就是我想要的。

但是,我试图分别创建另一个编辑视图。所以我右键单击我的编辑操作方法,选择“添加视图”,称之为“Edit2”,使用Film作为模型,使用“Edit”作为scaffold模板。在这个视图中,我得到了一个简单的“EditorFor(m-> m.GenreID)”,标记为GenreID。那不是我想要的。

当然,我可以手动更改。当然,我可以下载一系列声称做得更好的脚手架工具。

但我想了解这是否是EF模板中的错误,或者我的模型是否构建错误以致Genre / GenreID混淆。当我一次创建所有内容时,脚手架会创建一个DropDown,因此必须“只”删除一些缺失的细节。

1 个答案:

答案 0 :(得分:0)

您需要在控制器中调用您的操作"编辑2"。