2016-05-10 46 views
0

我有一個窗體的網頁,窗體顯示來自數據庫的信息,但我不知道如何更新數據庫。我有一種保存方法,但我認爲它必須是更新方法?我想我應該在我的按鈕上有一些事件處理程序,但我不知道如何。我已搜查谷歌現在2天,但仍無法找到我的方式解決它..如何更新我的數據庫?

這是我的形式

@if (Model.Bestuur.Bestuursleden.Any()) 
       { 
        foreach (var i in Model.Bestuur.Bestuursleden) 
        { 
         <form role="form" action="" method="post" name="formEdit"> 

          <h2>@string.Format("{0} {1}", i.Persoon.Voornaam, i.Persoon.Achternaam)</h2> 
          <br /> 
          <div class="form-group"> 
           <label for="vnaam">Voornaam</label> 
           <input type="text" class="form-control" id="vnaam" name="vnaam" value="@i.Persoon.Voornaam" /> 
          </div> 

          <div class="form-group"> 
           <label for="anaam">Achternaam</label> 
           <input type="text" class="form-control" id="anaam" name="anaam" value="@i.Persoon.Achternaam" /> 
          </div> 

          <div class="form-group"> 
           <label for="email">Email</label> 
           <input type="text" class="form-control" id="email" name="email" value="@i.Persoon.Email" /> 
          </div> 

          <div class="form-group"> 
           <label for="telnr">Telefoonnummer</label> 
           <input type="text" class="form-control" id="telnr" name="telnr" value="@i.Persoon.Telnr" /> 
          </div> 

          <div class="form-group"> 
           <label for="informatie">Informatie</label> 
           <textarea class="form-control" id="informatie" name="informatie" value="@i.Persoon.Informatie" style="resize:vertical">@i.Persoon.Informatie</textarea> 
          </div> 

          <div class="form-group"> 
           <label for="functie">Functie</label> 
           <input type="text" class="form-control" id="functie" name="functie" value="@i.Funktie.Naam" /> 
          </div> 
          <button type="submit" id="btnSaveChanges" class="btn btn-primary">Wijzigen</button> 
         </form> 
         <br /><br /><br /><br /> 
        } 
       } 

按鈕「btnSaveChanges」是uDate公司按鈕

我服務

public bool SavePersoon(PersoonModel persoon) 
    { 
     bool result = true; 


     db.Persoon.AddOrUpdate(persoon.GetPoco()); 


     db.SaveChanges(); 
     return result; 

     //Persoon p = new Persoon() 
     //{ 
     // ID = persoon.Id, 
     // FIRST_NAME = persoon.Voornaam, 
     // LAST_NAME = persoon.Achternaam, 
     // EMAILADRES = persoon.Email, 
     // CITY = persoon.Woonplaats, 
     // PHONENUMBER = persoon.Telnr, 
     // INFORMATION = persoon.Informatie 
     //} 



    } 

而且我的模型

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Runtime.Serialization; 
using System.Web; 

namespace WCFPlanningTool.Models.Bestuur 
{ 
[DataContract] 
public class BestuurModel 
{ 
    [DataMember] 
    List<BestuurLidModel> Bestuursleden { get; set; } 

    public BestuurModel(List<BESTUURSLID> bestuursleden) 
    { 
     Bestuursleden = new List<BestuurLidModel>(); 

     foreach(BESTUURSLID bestuurslid in bestuursleden) 
     { 
      Bestuursleden.Add(new BestuurLidModel(bestuurslid)); 
     } 
    } 
} 

[DataContract] 
public class BestuurLidModel 
{ 
    [DataMember] 
    public PersoonModel Persoon { get; set; } 

    [DataMember] 
    public FunktieModel Funktie { get; set; } 

    public BestuurLidModel(BESTUURSLID bestuurslid) 
    { 
     Persoon = new PersoonModel(bestuurslid.Persoon); 
     Funktie = new FunktieModel(bestuurslid.Functie); 
    } 
} 

[DataContract] 
public class PersoonModel 
{ 
    [DataMember] 
    public string Voornaam { get; set; } 

    [DataMember] 
    public string Achternaam { get; set; } 

    [DataMember] 
    public string Email { get; set; } 
    [DataMember] 
    public string Woonplaats { get; set; } 
    [DataMember] 
    public string Telnr { get; set; } 
    [DataMember] 
    public string Informatie { get; set;} 
    [DataMember] 
    public Guid Id { get; set; } 

    public bool IsDeleted { get; set; } 
    public DateTime Created { get; set; } 
    public Guid CreatedBy { get; set; } 
    public DateTime Modified { get; set; } 
    public Guid ModifiedBy { get; set; } 


    public PersoonModel(Persoon persoon) 
    { 
     Voornaam = persoon.FIRST_NAME; 
     Achternaam = persoon.LAST_NAME; 
     Email = persoon.EMAILADRES; 
     Woonplaats = persoon.CITY; 
     Telnr = persoon.PHONENUMBER; 
     Informatie = persoon.INFORMATION; 
    } 

    public Persoon GetPoco() 
    { 
     Persoon result = new Persoon(); 

     result.ID = Id; 

     result.FIRST_NAME = Voornaam; 
     result.LAST_NAME = Achternaam; 
     result.INFORMATION = Informatie; 
     result.PHONENUMBER = Telnr; 
     result.CITY = Woonplaats; 
     result.EMAILADRES = Email; 
     result.DELETESTATUS = false; 
     result.CREATED = DateTime.Now; 
     result.CREATEDBY = Guid.Empty; 
     result.MODIFIED = DateTime.Now; 
     result.MODIFIEDBY = Guid.Empty; 

     return result; 
    } 
} 

[DataContract] 
public class FunktieModel 
{ 
    [DataMember] 
    public string Naam { get; set; } 

    public FunktieModel(Functie functie) 
    { 
     Naam = functie.NAME; 
    } 
} 
} 
+2

什麼錯誤您收到?詳細解釋你的箴言是什麼 – Dandy

+0

我無法更新我的表格,數據庫 – Lucafraser

+0

http://stackoverflow.com/questions/15190929/how-to-link-html5-form-action-to-controller-actionresult-method- in-asp-net-mvc-4檢查這個鏈接它可能會幫助你,如果它確實幫助,然後讓我knw – Dandy

回答

0
<input type="submit" value="Save" /> 

它會調用表單動作指向您的控制器的任何公共操作方法。然後您可以調用保存視圖模型。

[HttpPost] 
    public ActionResult Save(MyViewModel model) { 
    model.Save();    

    --- more code to do stuff here 
} 

設置你的表單動作myController的/保存

您還可以使用使用(Html.BeginForm ...在你的代碼的形式指向一個特定的操作方法特定的控制器上。