我是MVC3的新手,我有多个模型,如BussinessDetails,ContactPerson,servicearea,地址和更多模型。 我有一个单一的视图页面,其中共享视图页面,如联系人,bussinessdetails,地址,服务区等。这些都在tabs.they有自己的模型。
我的问题是如何在同一个编辑视图页面中编辑多个模型。在发送这篇文章之前,我接受了MVC3“音乐商店”示例的帮助,但只有一个模型“ALBUM”,他们为一个模型提供编辑操作如果有一个或多个模型,我将在同一个视图页面中编辑。
我已经制作了母业务规范类。这是来自MVC“音乐商店”
public ActionResult Edit(int id) {
Album album = db.Albums.Find(id);
ViewBag.GenreId = new SelectList(db.Genres, "GenreId", "Name", album.GenreId);
ViewBag.ArtistId = new SelectList(db.Artists, "ArtistId", "Name",
album.ArtistId);
return View(album);
}
[HttpPost]
public ActionResult Edit(Album album) {
if (ModelState.IsValid) {
db.Entry(album).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
ViewBag.GenreId = new SelectList(db.Genres, "GenreId", "Name", album.GenreId);
ViewBag.ArtistId = new SelectList(db.Artists, "ArtistId", "Name",
album.ArtistId);
return View(album);
}
在HTTP POST中,只有模型“ALBUM”,如果有更多模型我如何在多个模型和视图上执行编辑操作?
答案 0 :(得分:2)
创建一个新模型,其中包含有关两个或更多模型的信息,例如
public class MainPageModel{
public mod mod{get; set;}
public mod2 mod2{get; set;}
}
并在您的操作中引用MainPageModel并在对象上进行编辑,返回对象所属的模型
这是一个很好的教程
http://francorobles.wordpress.com/2011/05/03/returning-multiple-models-in-1-view-in-asp-net-mvc3/
答案 1 :(得分:0)
是的,您可以使用视图模型来完成,请在这篇文章中查看我的答案