2016-05-10 6 views
0

私はフォームのウェブページを持っていますが、フォームはデータベースの情報を表示しますが、データベースの更新方法はわかりません。私は貯蓄方法がありますが、それは更新方法でなければならないと思いますか?私はボタンの上にいくつかのイベントハンドラを持っているべきだと思ったが、どうしたらよいかわからない。私は、ボタン「btnSaveChangesは」これはデータベースを更新するにはどうすればよいですか?

@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 /> 
        } 
       } 

私のフォーム..です

を2日間、今Googleで検索しましたが、まだそれを修正するために私の方法を見つけることができません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あなたに役立つかもしれないこのリンクをチェックし、助けてくれたら、私に知らせてください – Dandy

答えて

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

これは、フォームアクションがコントローラ上で指しているパブリックアクションメソッドを呼び出します。その後、ビューモデルでsaveを呼び出すことができます。

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

    --- more code to do stuff here 
} 

MyController /保存に

をフォームのアクションを設定しますまた、特定のコントローラ上の特定のアクションメソッドにフォームを指すようにあなたのコードで... (Html.BeginFormを使用して使用することができます。

0

You'rフォームがusing (@Html.BeginForm("myMethod", "Home", FormMethod.Post))

が欠落して確認してください。いただきました!エラーあなたが取得している https://stackoverflow.com/a/14124732/5600402

関連する問題