2016-11-30 5 views
1

Ich möchte nur aktualisieren Den Status und Land Eigenschaften zu aktualisieren und will daher Sign Eigentum zu verhindern, auf Bearbeiten aktualisiert werden.Wie nur einige Eigenschaften in Entity Framework

Hier ist meine Modellklasse

public class Currency{ 
     [Required] 
     public int Id{ get; set;} 
     [Required] 
     public string Sign { get; set; } 
     [Required] 
     public string Country { get; set; } 
     [Required] 
     public int Status{get;set;} 
    } 

Dies ist die Standard-Edit-Methode im Controller ist:

[HttpPost] 
     [ValidateAntiForgeryToken] 
     public ActionResult Edit([Bind(Include = "Id,Sign,Country,Status")] Currency currenc) 
     { 
      if (ModelState.IsValid) 
      { 
       db.Entry(currenc).State = EntityState.Modified; 
       db.SaveChanges(); 
       return RedirectToAction("Index"); 
      } 
      return View(currenc); 
     } 
+0

[Was ist Ansichtsmodell in MVC?] (Http://stackoverflow.com/questions/11064316/what-is-viewmodel-in-mvc) –

+0

Sie mich Ansicht in Frage –

+0

Nein auch schreiben - Ich möchte, dass Sie den Link lesen :) –

Antwort

1

die Edit-Methode schreiben wie folgt:

[HttpPost] 
     [ValidateAntiForgeryToken] 
     public ActionResult Edit([Bind(Include = "Id,Sign,Country,Status")] Currency currenc) 
     { 
      if (ModelState.IsValid) 
      { 
       db.Entry(currenc).State = EntityState.Modified; 

       // Sign Property wouldn't be updated 
       db.Entry(currenc).Property(x => x.Sign).IsModified = false; 
       db.SaveChanges(); 
       return RedirectToAction("Index"); 
      } 
      return View(currenc); 
     } 
0

Sie können laden Das Objekt aus der Datenbank aktualisiert nur die Eigenschaften, die geändert wurden, oder Sie möchten es ändern und in der Datenbank speichern.

[HttpPost] 
    [ValidateAntiForgeryToken] 
    public ActionResult Edit(Currency currency) 
    { 
     if (ModelState.IsValid) 
     { 
      var record = db.Currencies.Find(currency.Id); 
      if(record != null) 
       { 
       record.Status = currency.Status; 
       record.Country = currency.Country; 
       db.SaveChanges(); 
       } 


      return RedirectToAction("Index"); 
     } 
     return View(currenc); 
    } 
+0

Es ist sicher, Bindings zu entfernen (Bind (Include =) –

+0

Ja, weil Sie nicht das Objekt selbst verwenden, aber damit die Eigenschaften in das andere Objekt aus der Datenbank geladen setzen –

Verwandte Themen