首页 > 解决方案 > 更改实体时不规则的无效 encryptedTicket

问题描述

我一直在做一个 Asp.net/umbraco 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>

控制器助手:

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 中删除第二个实体来正确运行的示例

标签: asp.netasp.net-mvcentity-framework-6umbracoumbraco7

解决方案


我在使用 Fiddler 的帮助下解决了这个问题,当视图中的列表为空时,会发布错误的数据。所以我通过分离我的表格来解决它。希望它可以帮助其他任何获得此异常的人。


推荐阅读