【发布时间】:2011-07-18 04:00:09
【问题描述】:
您好,我正在阅读教程:
http://www.asp.net/mvc/tutorials/mvc-music-store-part-1
我试图让它使用 viewModels,而不是使用 ViewBag。
创建的 GET 变成了:
public ActionResult Create()
{
return View();
}
create POST 现在有一个 AlbumViewModel:
[HttpPost]
public ActionResult Create(AlbumViewModel albumViewModel)
{
if (ModelState.IsValid)
{
//db.Albums.Add(albumViewModel);
//db.SaveChanges();
return RedirectToAction("Index");
}
return View(albumViewModel);
}
ViewModel 将包含 Genres 下拉列表,而不是通过 ViewBag 传递它们。
AlbumViewModel 类是:
public class AlbumViewModel
{
public Album Album { get; set;}
public SelectList Genres = new SelectList(repository.Genres, "Name", "Id");
}
正如您从创建帖子中看到的,我不确定如何使用GenreId 保存新创建的相册。
谁能告诉我你是怎么做到的?
【问题讨论】:
-
该系列的其他教程向您展示如何保存实体
-
在你的 http Get create 方法中你没有传递albumViewmodel 那么在第一次加载页面时如何呈现选择列表
标签: asp.net-mvc viewmodel