这快把我逼疯了,我研究了StackOverflow上的相关帖子。
基本上我有两个表,专辑和流派,前者有一个外键到流派。我已经在EF5中使用Model First对此进行了建模,并使用MS的T4生成器生成了上下文和类文件。因此,我的域类代码是:
{
using System;
using System.Collections.Generic;
public partial class Album
{
public int Id { get; set; }
public string Title { get; set; }
public decimal Price { get; set; }
public string AlbumArtUrl { get; set; }
public int GenreId {get; set;}
public virtual Genre Genre { get; set; }
}
}您会注意到我添加了以下内容:
public int GenreId {get; set;}根据指导,为了使脚手架能够在视图中创建下拉菜单并在控制器中创建"SelectList“代码。但事实并非如此!但是,它确实会在视图中创建:
<div class="editor-label">
@Html.LabelFor(model => model.GenreId)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.GenreId)
@Html.ValidationMessageFor(model => model.GenreId)
</div>所以我真的很困惑。任何想法都将不胜感激。
谢谢,
边缘
附言:我正在运行VS2010 SP1与ASP.NET MVC3工具更新它似乎,因为我试图安装它,它说它已经安装。
发布于 2012-09-29 08:56:56
你..。啊!我已经让它与MS脚手架一起工作。现在我需要弄清楚是怎么回事了。我认为问题出在我使用Model First的事实上,我需要确保将额外的外键属性添加到模型中,而不只是添加到Domain Class代码中,它需要在EDMX中。但是,这会产生另一个问题,因为现在在SQL Server中创建了两个字段,一个来自导航属性,另一个来自该字段。我可能需要玩一下地图。这就做
生成的控制器代码:
// GET: /Album/Create
public ActionResult Create()
{
ViewBag.GenreId = new SelectList(db.Genre, "Id", "Name");
return View();
} 关联视图代码:
<div class="editor-label">
@Html.LabelFor(model => model.GenreId, "Genre")
</div>
<div class="editor-field">
@Html.DropDownList("GenreId", String.Empty)
@Html.ValidationMessageFor(model => model.GenreId)
</div>这就是我想要的。显然,如果有人想对此发表评论,那就太好了,但它确实有效。
谢谢。
https://stackoverflow.com/questions/12648340
复制相似问题