2011-05-23 187 views
0

在我的编辑动作方法中,我想保存调用编辑动作时所做的所有更改。但我想我错过了一些想法。这是我正在尝试的。编辑ASP.NET MVC 3中的动作3

[HttpPost] 
     public ActionResult Edit(Person editPerson) 
     { 
      if (ModelState.IsValid) 
      { 

       // may be here I want to add soething 
       return RedirectToAction("Index"); 
      } 
      else 
      { 
       return View(editPerson); 
      } 
     } 
+0

[HttpPost] public ActionResult Edit(Person editPerson) (ModelState.IsValid) { return RedirectToAction(“Index”);如果(ModelState.IsValid) } else { return View(editPerson); } } – Jash 2011-05-23 13:01:29

回答

0

你用什么来保存Person对象?你使用实体框架还是纯粹的SQL?我认为,因为您使用的是使用实体框架的MVC3。如果我看到你的方法,你很可能正在尝试创建一个人然后编辑一个人。如果您正在编辑的方法通常会看起来像public ActionResult Edit(int id, Person editPerson)

在这种情况下

using(SomeContext db = new SomeContext()) 
{ 
db.Persons.Add(editPerson); 
db.SaveChanges(); 
} 

如果编辑

using(SomeContext db = new SomeContext()) 
{ 
Person person = db.Persons.Find(id); 
// Update your fields 
db.SaveChanges(); 
} 
+0

我没有使用任何数据库。我只是想保存在内存中。我有解决方案。感谢您提供各种方式 – Jash 2011-05-24 06:45:13

0

,因为在这多种方式与备份存储互动,我们需要更多关于你如何做的信息(实体框架,LINQ to SQL等)。如果你还没有检查出来,你应该从着名的Nerd Dinner Tutorial上阅读Scott Hanselman的Exploring Different Database Options的博客。这应该引导你朝正确的方向发展。 (另外,如果你还没有玩过Nerd晚餐,我会强烈建议你这样做,这是对MVC及其周围各种技术的极好介绍。)