我一直在做一个Asp.net/bumbraco 7.12项目。然而,当我以成员身份登录时,我试图操作模型实体中Icollection中的第一个实体,它总是为无效的EncryptedTicket值提供一个例外。尽管它在所有其他实体上都很好用。我尝试过清除cookie,并检查特定实体是否有问题,但似乎都不是问题所在。我的假设是,有什么东西禁止我使这两个实体之间的关系完全无效,不幸的是,我没有经验来说明什么。如果有人得到任何线索,那将是非常有帮助的。
型号:
[Table("Vestigingen")]
public class Vestiging :I_modified
{
[Display(Name = "Vestiging naam" )]
public string Naam { get; set; }
[Display(Name = "Adres")]
public string Adres { get; set; }
[Display(Name = "Vestiging ID")]
public int ID { get; set; }
[Display(Name = "Datum aangemaakt")]
public DateTime Created { get; set; }
[Display(Name = "Datum aangepast")]
public DateTime Modified { get; set; }
[Display(Name = "Aangemaakt door")]
public string CreatedBy { get; set; }
[Display(Name = "Aangepast door")]
public string ModiFiedBy { get; set; }
[Display(Name = "Status")]
public Status Status { get; set; }
public virtual ICollection<MemberMedewerker> Medewerkers { get; set; }
public virtual ICollection<MemberLeerling> Leerlingen { get; set; }
}
视图:
<br />
<div class="form-row">
<div class="col-sm-3">
<h4>Medewerkers gekoppeld aan vestiging</h4>
<table class="table table-sm dataTable no-footer" role="grid">
<tbody>
@foreach (var medewerker in Model.Medewerkers)
{
if (medewerker.Status == Status.Active)
{
<tr id="">
<td class="clickable-row" role="row" data-url="/HR/medewerkeraanpassen/?memberId=@medewerker.ID">@medewerker.Naam</td>
@using (Html.BeginUmbracoForm<HRController>("MedewerkerOntKopellenVanVestiging", null))
{
<td>
<input name="vestigingId" class="form-control" id="" type="text" value="@Model.ID" hidden />
<input name="memberId" class="form-control" id="" type="text" value="@medewerker.ID" hidden />
<button class="btn btn-primary" type="submit">Ontkoppelen</button>
</td>
}
</tr>
}
}
</tbody>
</table>
</div>
ControllerHelper:
public void MedewerkerOntKopellenVanVestiging(int vestigingId, int memberId)
{
using (dalcontext)
{
var medewerker = dalcontext.MemberMedewerkers.FirstOrDefault(x => x.ID == memberId);
var vestiging = dalcontext.Vestigingen.FirstOrDefault(x => x.ID == vestigingId);
vestiging.Medewerkers.Remove(medewerker);
dalcontext.SaveChanges();
}
}
"Ontkoppelen"通常会点击控制器将实体从ICollection中删除,除非我在第一个实体上点击"Ontkoppelen
异常详细信息
从ICollection 中删除第二个实体的示例
我在使用Fiddler的帮助下解决了这个问题,当视图中的列表变空时,发布了错误的数据。所以我通过分离表格来解决这个问题。希望它能帮助其他任何得到这个例外的人。