0

我是 MVC3 的新手,我有多个模型,例如 BussinessDetails、ContactPerson、servicearea、address 和更多模型。我有一个单一的视图页面,其中共享视图页面,如联系人、业务详细信息、地址、服务区等。这些都在选项卡中。它们有自己的模型。

我的问题是如何在同一个编辑视图页面中编辑多个模型。在发送这篇文章之前,我求助于 MVC3“音乐商店”示例,但只有一个模型“专辑”,如果有,他们会为一个模型提供编辑操作是一个或多个模型,我将如何在同一视图页面中进行编辑。

我已经制作了父业务规范类。这是来自 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”上我如何对多个模型执行编辑操作并查看?

4

2 回答 2

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/

于 2012-05-22T06:10:42.340 回答
0

是的,你可以通过使用视图模型来做到这一点,请看看我在这篇文章中的回答

所需字段验证 MVC

于 2012-05-22T07:32:49.570 回答