Quantcast
Channel: ASP.NET Core
Viewing all articles
Browse latest Browse all 9386

Some fields set to null after Update!

$
0
0

Hi

I have some fields in my model which do not need to display or edit via end user, It's system fields (such as CreatedBy, DateCreated, TimeCreated, LastModifiedBy, LastModifiedDate and LastModifiedTime) & controlled via my webApp (through overriding SaveChanges method).

This process works as well in Create action, but after Update action, those fields set to null.

Here is my Edit action :

[Route("Visit/Edit/{id?}")]
        public IActionResult Edit(string id)
        {
            var curVisitHeader = _dbContext.VisitHeaders.Find(Guid.Parse(id));
            var patient = _dbContext.Patients.Find(curVisitHeader.PatientRowID);
            ViewBag.DiagnosisID = new SelectList(_dbContext.Diagnoses, "DiagnosisID", "DiagnosisName");
            ViewBag.PatientFullName = string.Format("{0} {1}", patient.PatientFname, patient.PatientLname);
            return View("Edit", curVisitHeader);
        }

Here is my Edit view :

<form id="frmEditVisitItem" asp-action="Update" method="post"><div asp-validation-summary="All" class="text-danger"></div><input type="hidden" asp-for="VisitHeaderRowID" value="@Model.VisitHeaderRowID" /><input type="hidden" asp-for="PatientRowID" value="@Model.PatientRowID" /><input type="hidden" asp-for="ProductSupplierID" value="@Model.ProductSupplierID" /><input type="hidden" asp-for="MedicalCenterDoctorRowID" value="@Model.MedicalCenterDoctorRowID" /><input type="hidden" asp-for="OwnerTableName" value="@Model.OwnerTableName" /><input type="hidden" asp-for="OwnerID" value="@Model.OwnerID" /><div class="form-group"><label asp-for="VisitDate" class="control-label"></label><input asp-for="VisitDate" class="form-control" value="@Model.VisitDate" /><span asp-validation-for="VisitDate" class="text-danger"></span></div><div class="form-group"><label asp-for="Description" class="control-label"></label><textarea asp-for="Description" class="form-control" value="@Model.Description"></textarea><span asp-validation-for="Description" class="text-danger"></span></div><div class="form-group"><label asp-for="DiagnosisID" class="control-label"></label><select asp-for="DiagnosisID" class="form-control" asp-items="@ViewBag.DiagnosisID" value="@Model.DiagnosisID"></select><span asp-validation-for="DiagnosisID" class="text-danger"></span></div><div class="text-right"><button type="submit" id="btnCreateVisit" class="btn btn-success">Save</button>
                @Html.ActionLink("Back", "Details", "Patient", new { id = Model.PatientRowID })</div></form>

And here is my Update action :

[HttpPost]
        [ValidateAntiForgeryToken]
        public IActionResult Update([Bind("VisitHeaderRowID, PatientRowID, ProductSupplierID, VisitDate, Description, MedicalCenterDoctorRowID, DiagnosisID, OwnerTableName, OwnerID")] VisitHeaders visitHeader)
        {
            if (this.ModelState.IsValid)
            {
                _dbContext.Entry(visitHeader).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
                _dbContext.SaveChanges();
                return RedirectToAction("Details", "Patient", new { id = visitHeader.PatientRowID });
            }

            return View("Edit", visitHeader);
        }

How to work-around this problem?

Thanks in advance


Viewing all articles
Browse latest Browse all 9386

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>