我有一个带有表单的网页,表单显示了数据库中的信息,但我不知道如何更新数据库。我有一个保存方法,但我认为它必须是一个更新方法?我以为我的按钮上应该有一些事件处理程序,但我不知道怎么做。我已经在谷歌搜索了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 />
}
}
按钮&#39; btnSaveChanges&#39;是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;
}
}
}
答案 0 :(得分:0)
<input type="submit" value="Save" />
它会调用表单操作指向控制器上的任何公共操作方法。然后,您可以在视图模型上调用save。
[HttpPost]
public ActionResult Save(MyViewModel model) {
model.Save();
--- more code to do stuff here
}
将表单操作设置为MyController / Save
您还可以在代码中使用(Html.BeginForm
...将表单指向特定控制器上的特定操作方法。
答案 1 :(得分:0)
您的表单缺少using (@Html.BeginForm("myMethod", "Home", FormMethod.Post))