2011-05-23 181 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及其周圍各種技術的極好介紹。)