Почему одно скрытое изменение представления не отображается после выхода из страницы формы - PullRequest
0 голосов
/ 22 февраля 2019

Я обнаружил, что на моей странице индекса не отображается обновленная информация о пользователях, вошедших в данный момент.Поэтому я изменил страницу формы с:

<div class="col-xs-4">
        <div class="col-md-4">
            @Html.HiddenFor(model => model.SubmittedDate, new { Value = System.DateTime.Now })            
            @Html.HiddenFor(model => model.SubmittedBy, new { Value = Model.ADAccount })
        </div>
    </div>

**to:**
<div class="col-xs-4">
       <div class="col-md-4">
            @Html.HiddenFor(model => model.SubmittedDate, new { htmlAttributes = new { @class = "form-control" } })     
            @Html.HiddenFor(model => model.SubmittedBy, new { htmlAttributes = new { @class = "form-control" } })
            @Html.HiddenFor(model => model.UpdatedDate, new { Value = System.DateTime.Now })
            @Html.HiddenFor(model => model.UpdateBy, new { htmlAttributes = new { Value = Model.ADAccount } })
        </div>
    </div>

Я также попытался изменить страницу формы следующим образом, но она ничего не изменила:

@Html.HiddenFor(model => model.UpdateBy, new { Value = Model.ADAccount })

Отправить выглядит следующим образом на странице формы:

@(Html.Kendo().Button()
                                .Name("submit")
                                .Content("Submit")
                                .HtmlAttributes(new { @class = "k-primary" })
                                .Events(ev => ev.Click("onClick")))

Но по какой-то причине он все еще не показывает UpdateBy в списке индекса.Я не вижу конкретной ссылки в Controller для UpdateBy или SubmittedBy.Я вижу их обоих в списке ApplicantCapturedData.cs:

public string UpdateBy { get; set; }
public string SubmittedBy { get; set; }

Я вижу в ApplicantController.cs, сообщение «Редактировать» помещает некоторые данные в БД, но не упоминает переменные updateBy или SubmittedBy или модель в частности,Однако в старом коде изменение переменной SubmittedBy отображалось в списке индексов.Я посмотрел в проекте, и нет никаких конкретных ссылок на SubmittedBy, кроме ApplicantController

Когда я помещаю часы в UpdateBy, я вижу, что они возвращаются назад и вперед между старым пользователем, мной и нулем.По-видимому, это заканчивается со старым пользователем, потому что именно это отображается в списке кандидатов в индексе после отправки формы.

Есть мысли о том, как это исправить?Я новичок в MVC, и я не уверен, почему это изменение не возвращается к модели / DB.Когда ApplicantController получает ApplicantCapturedData, он показывает старое значение для UpdateBy, а не новое значение.

Метод редактирования должен возвращать текущего зарегистрированного пользователя в представление вместо данных BD, но это не так.Я не уверен, почему.

Я смотрел на контроллер, не получающий информацию о модели , но мне это показалось не такой проблемой.

Дайте мне знатьесли вы думаете, я оставляю любую важную информацию, которая вам нужна.Я, очевидно, не могу опубликовать все файлы и код mvc здесь для ясности и здравомыслия.

****** Обновление ********* Это метод Edit / Post в ApplicantController.cs.Он не относится конкретно к SubmittedBy или UpdateBy, но часть SubmittedBy отображается в индексе, даже если мы обновили его в форме с текущим пользователем AD:

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(ApplicantCapturedData applicantCapturedData)
{
    var eRecordSchedulinglist = applicantCapturedData.ERecordScheduling;
    var eRecordScheduling = new ERecordScheduling();

    // int IDs = applicantCapturedData.ID;
    //updating Provider License 
    var providerLicenselist = applicantCapturedData.ProviderLicense;
    var providerLicense = new ProviderLicense();

    var eprescribelist = applicantCapturedData.EPrescribe;
    var eprescribe = new EPrescribe();
    //updating payor table 
    var payorlist = applicantCapturedData.Payor;
    var payor = new Payor();

    //updating tax table 
    var taxlist = applicantCapturedData.TaxNPITaxonomy;
    var tax = new TaxNPITaxonomy();
    if (ModelState.IsValid)
    {
        //ERecordScheduling eRecordScheduling = new ERecordScheduling();
        db.Entry(applicantCapturedData).State = System.Data.Entity.EntityState.Modified;
        db.SaveChanges();

        int getid = applicantCapturedData.ID;

        //Getting values for provider license already in db
        var query = from p in db.ProviderLicenses
                    where p.ApplicantCapturedData_ID == getid
                    select p;

        //deleting the existing rows
        foreach (var i in query)
        {
            db.ProviderLicenses.Remove(i);
        }
        db.SaveChanges();

        int c = 1;
        if (providerLicenselist != null)
        {

            var updatePLS = providerLicenselist.ToList();
            // adding only new record to db
            foreach (var i in updatePLS)
            {
                providerLicense.LicenseNumber = i.LicenseNumber;
                providerLicense.State = i.State;
                providerLicense.ProviderLicenseID = i.ProviderLicenseID;
                i.ApplicantCapturedData_ID = getid;


                if (providerLicense.ProviderLicenseID <= c)
                {
                    providerLicense.ProviderLicenseID = providerLicense.ProviderLicenseID++;
                }

                db.ProviderLicenses.Add(i);
                db.SaveChanges();

            }
        }
        //getting  Values already existing in db for Erecording Schedulign
        var queryERS = from p in db.ERecordSchedulings
                       where p.ApplicantCapturedData_ID == getid
                       select p;


        //deleting the existing rows
        foreach (var i in queryERS)
        {
            db.ERecordSchedulings.Remove(i);
        }
        db.SaveChanges();

        if (eRecordSchedulinglist != null)
        {
            var updateESCH = eRecordSchedulinglist.ToList();
            foreach (var item in updateESCH)
            {
                eRecordScheduling.DepartmentName = item.DepartmentName;
                eRecordScheduling.Shedules = item.Shedules;
                eRecordScheduling.VisitType = item.VisitType;
                eRecordScheduling.GenericProvider = item.GenericProvider;
                eRecordScheduling.ERecordSchedulingID = item.ERecordSchedulingID;
                // a.ApplicantCapturedData_ID = newid;
                item.ApplicantCapturedData_ID = getid;

                if (eRecordScheduling.ERecordSchedulingID <= c)
                {
                    eRecordScheduling.ERecordSchedulingID = eRecordScheduling.ERecordSchedulingID++;
                }

                //save to db
                db.ERecordSchedulings.Add(item);
                db.SaveChanges();
            }
        }

        //Getting Values that already exisit in db for Taxonomy 
        var querytaxo = from p in db.TaxNPITaxonomies
                        where p.ApplicantCapturedData_ID == getid
                        select p;

        //deleting the existing rows
        foreach (var i in querytaxo)
        {
            db.TaxNPITaxonomies.Remove(i);
        }
        db.SaveChanges();

        if (taxlist != null)
        {
            var UpdateTaxo = taxlist.ToList();
            foreach (var t in UpdateTaxo)
            {
                tax.GroupNPI = t.GroupNPI;
                tax.Notes = t.Notes;
                tax.TaxID = t.TaxID;
                tax.TaxNPITaxonomyID = t.TaxNPITaxonomyID;
                tax.Taxonomy = t.TaxID;
                t.ApplicantCapturedData_ID = getid;

                if (tax.TaxNPITaxonomyID <= c)
                {
                    tax.TaxNPITaxonomyID = tax.TaxNPITaxonomyID++;
                }

                db.TaxNPITaxonomies.Add(t);
                db.SaveChanges();
            }
        }

        var queryeprescribe = from p in db.EPrescribes
                              where p.ApplicantCapturedData_ID == getid
                              select p;

        foreach (var i in queryeprescribe)
        {
            db.EPrescribes.Remove(i);
        }
        db.SaveChanges();

        if (eprescribelist != null)
        {
            var updateeprescribe = eprescribelist.ToList();

            foreach (var t in updateeprescribe)
            {
                eprescribe.EPrescribeOptions = t.EPrescribeOptions;
                eprescribe.ID = t.ID;
                t.ApplicantCapturedData_ID = getid;
                if (eprescribe.ApplicantCapturedData_ID <= c)
                {
                    eprescribe.ApplicantCapturedData_ID = eprescribe.ApplicantCapturedData_ID++;
                }
                db.EPrescribes.Add(t);
                db.SaveChanges();
            }

        }

        //Geting values that already exist in db for Payors

        var queryPayor = from p in db.Payors
                         where p.ApplicantCapturedData_ID == getid
                         select p;

        //deleting the existing rows
        foreach (var i in queryPayor)
        {
            db.Payors.Remove(i);
        }
        db.SaveChanges();

        if (payorlist != null)
        {
            var updatepayor = payorlist.ToList();

            foreach (var p in updatepayor)
            {
                payor.Pyor = p.Pyor;
                payor.PayorID = p.PayorID;

                p.ApplicantCapturedData_ID = getid;

                if (payor.PayorID <= c)
                {
                    payor.PayorID = payor.PayorID++;
                }

                db.Payors.Add(p);
                db.SaveChanges();
            }
        }

        return RedirectToAction("Index");

    }

    return View(applicantCapturedData);
}

Вот сохранение в ApplicantController.cs.Он также не имеет конкретной ссылки на UpdateBy или SubmittedBy, и, тем не менее, SubmittedBy использовался для обновления, когда я менял пользователя AD:

//  [HttpPost]
public ActionResult Save(ApplicantCapturedData applicantCapturedData)
{
     ViewBag.PostedBills = applicantCapturedData.BillingAreas;

    applicantCapturedData.BillingAreas = applicantCapturedData.BillingAreas;

    //updating eRecordScheduling 
    var list = applicantCapturedData.ERecordScheduling;
    var a = new ERecordScheduling();
    var OtherAddressList = applicantCapturedData.PracticeInfoOtherLocations;
    var otheraddresses = new PracticeInfoOtherLocation();

    //var payorlist = applicantCapturedData.Payor;
    //var payor = new Payor();
    // int IDs = applicantCapturedData.ID;
    //updating Provider License 

    var providerLicenselist = applicantCapturedData.ProviderLicense;
    var providerLicense = new ProviderLicense();

    var Eprescribelist = applicantCapturedData.EPrescribe;
    var eprescribe = new EPrescribe();

    //updating payor table 
    var payorlist = applicantCapturedData.Payor;
    var payor = new Payor();

    //updating tax table 
    var taxlist = applicantCapturedData.TaxNPITaxonomy;
    var tax = new TaxNPITaxonomy();

    //   var lastEnt = db.ERecordSchedulings.AsEnumerable().Where(i => i.ERecordSchedulingID.CompareTo(a.ERecordSchedulingID))
    int c = 1;//lastEnter.LastOrDefault().ERecordSchedulingID;
    if (ModelState.IsValid)
    {
        db.ApplicantCapturedDatas.Add(applicantCapturedData);
        //  db.ERecordSchedulings.Add(applicantCapturedData);
        db.SaveChanges();
        //db.ERecordSchedulings.Add(applicantCapturedData.ERecordScheduling);

        //get the primary key id after adding to the Db
        int newid = applicantCapturedData.ID;

        if (applicantCapturedData.ERecordScheduling != null)
        {
            //  check if we have more record on Erecord scheduling using the count
            //if count is greater than zero we have record to add to db.
            if (applicantCapturedData.ERecordScheduling.Count() > 0)
            {
                /*
                 * This loops thru the list and add record 
                 * 
                 */
                foreach (var item in list)
                {

                    a.DepartmentName = item.DepartmentName;
                    a.Shedules = item.Shedules;
                    a.VisitType = item.VisitType;
                    a.GenericProvider = item.GenericProvider;
                    a.ERecordSchedulingID = item.ERecordSchedulingID;
                    // a.ApplicantCapturedData_ID = newid;
                    item.ApplicantCapturedData_ID = newid;


                    //if you put a breakpoint at the beginning of this class you will see that all id is 0 I had to increment the id so I don't override itself.
                    if (a.ERecordSchedulingID <= c)
                    {
                        a.ERecordSchedulingID = a.ERecordSchedulingID++;
                    }

                    //save to db
                    db.ERecordSchedulings.Add(item);
                    db.SaveChanges();
                    //item.LicenseNumber = a.LicenseNumber;
                    //item.State = a.State;
                    //item.ProviderLicenseID = a.ProviderLicenseID;
                }


            }
        }

        if (applicantCapturedData.ProviderLicense != null)
        {
            if (applicantCapturedData.ProviderLicense.Count() > 0)
            {
                foreach (var i in providerLicenselist)
                {
                    providerLicense.LicenseNumber = i.LicenseNumber;
                    providerLicense.State = i.State;
                    providerLicense.ProviderLicenseID = i.ProviderLicenseID;
                    i.ApplicantCapturedData_ID = newid;


                    if (providerLicense.ProviderLicenseID <= c)
                    {
                        providerLicense.ProviderLicenseID = providerLicense.ProviderLicenseID++;
                    }

                    db.ProviderLicenses.Add(i);
                    db.SaveChanges();

                }
            }
        }

        if (applicantCapturedData.Payor != null)
        {
            if (applicantCapturedData.Payor.Count() > 0)
            {
                foreach (var p in payorlist)
                {
                    payor.Pyor = p.Pyor;
                    payor.PayorID = p.PayorID;

                    p.ApplicantCapturedData_ID = newid;

                    if (payor.PayorID <= c)
                    {
                        payor.PayorID = payor.PayorID++;
                    }

                    db.Payors.Add(p);
                    db.SaveChanges();
                }
            }
        }
        if (applicantCapturedData.PracticeInfoOtherLocations != null)
        {
            if (applicantCapturedData.PracticeInfoOtherLocations.Count() > 0)
            {
                foreach (var p in OtherAddressList)
                {
                    otheraddresses.City = p.City;
                    otheraddresses.Fax = p.Fax;
                    otheraddresses.Phone = p.Phone;
                    otheraddresses.State = p.State;
                    otheraddresses.Street = p.Street;
                    otheraddresses.Suite = p.Suite;
                    otheraddresses.ZipCode = p.ZipCode;
                    otheraddresses.AppID = newid;
                    otheraddresses.ID = p.ID;

                    if (otheraddresses.ID <= c)
                    {
                        otheraddresses.ID = otheraddresses.ID++;
                    }

                    db.PracticeInfoOtherLocations.Add(p);
                    db.SaveChanges();
                }
            }
        }

        if (applicantCapturedData.EPrescribe != null)
        {
            if (applicantCapturedData.EPrescribe.Count() > 0)
            {
                foreach (var p in Eprescribelist)
                {
                    eprescribe.EPrescribeOptions = p.EPrescribeOptions;
                    eprescribe.ID = p.ID;

                    p.ApplicantCapturedData_ID = newid;

                    if (eprescribe.ID <= c)
                    {
                        eprescribe.ID = eprescribe.ID++;
                    }

                    db.EPrescribes.Add(p);
                    db.SaveChanges();
                }
            }
        }

        if (applicantCapturedData.TaxNPITaxonomy != null)
        {
            if (applicantCapturedData.TaxNPITaxonomy.Count() > 0)
            {
                foreach (var t in taxlist)
                {
                    tax.GroupNPI = t.GroupNPI;
                    tax.Notes = t.Notes;
                    tax.TaxID = t.TaxID;
                    tax.TaxNPITaxonomyID = t.TaxNPITaxonomyID;
                    tax.Taxonomy = t.TaxID;
                    t.ApplicantCapturedData_ID = newid;

                    if (tax.TaxNPITaxonomyID <= c)
                    {
                        tax.TaxNPITaxonomyID = tax.TaxNPITaxonomyID++;
                    }

                    db.TaxNPITaxonomies.Add(t);
                    db.SaveChanges();
                }
            }
        }
        return RedirectToAction("Index");
    }

    return View(applicantCapturedData);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...