提前感谢您的帮助。我无法使用两个或更多表格在asp.net mvc中创建或编辑字段。举个例子:我一直在使用MVC音乐商店的例子来学习
//
// GET: /StoreManager/Create
public ActionResult Create()
{
var viewModel = new StoreManagerViewModel
{
Album = new Album(),
Genres = storeDB.Genres.ToList(),
Artists = storeDB.Artists.ToList()
};
return View(viewModel);
}
//
// POST: /StoreManager/Create
[HttpPost]
public ActionResult Create(Album album)
{
if (ModelState.IsValid)
{
//Save Album
storeDB.AddToAlbums(album);
storeDB.SaveChanges();
return RedirectToAction("Index");
}
// Invalid – redisplay with errors
var viewModel = new StoreManagerViewModel
{
Album = album,
Genres = storeDB.Genres.ToList(),
Artists = storeDB.Artists.ToList()
};
return View(viewModel);
}
此示例考虑到Album只是模型中的一个表。我的主要问题在于我必须编码的方式,以便将另一个表格与FK包含在相册中。例如,如果AlbumVariant表 - 例如:field albumid-将FK显示到相册表 - 例如:field albumid - 。
我一直在尝试
[Authorize]
public ActionResult Create(int? id)
{
var albumCreate= db.Album.Include(AlbumVariant)SingleOrDefault(a => a.AlbumId == id);
var viewModel = new AlbumViewModelCreate()
{
AlbumCreate = albumCreate,
};
}
但没有成功。任何帮助将不胜感激。 brdgs
答案 0 :(得分:4)
您必须了解AlbumVariant
表将AlbumId
作为外键,这意味着必须首先生成AlbumId
!你可以试试这个:
storeDB.AddToAlbums(album);
storeDB.SaveChanges();
AlbumVariant av = new AlbumVariant {
...
AlbumId = album.Id //generates after calling the 1st save changes
}
storeDB.AddToAlbumVariant(av);
storeDB.SaveChanges();