[英]How do I update my database without having to wipe it each time I save data to it
[英]How do I update my database?
我有一个带有表单的网页,该表单显示了来自数据库的信息,但是我不知道如何更新数据库。 我有一种保存方法,但我认为它必须是一种更新方法吗? 我以为我应该在按钮上有一些事件处理程序,但是我不知道怎么做。 我已经搜索了2天的Google,但仍然找不到解决它的方法。
这是我的表格
@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;
}
}
}
<input type="submit" value="Save" />
它将调用表单动作指向您的控制器上的任何公共动作方法。 然后,您可以在视图模型上调用保存。
[HttpPost]
public ActionResult Save(MyViewModel model) {
model.Save();
--- more code to do stuff here
}
将表单动作设置为MyController / Save
您还可以在代码中使用using (Html.BeginForm
...将表单指向特定控制器上的特定操作方法。
您的表单using (@Html.BeginForm("myMethod", "Home", FormMethod.Post))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.