Данные, не отображаемые в полях формы при попытке обновлять, но создают нормальноC#

Место общения программистов C#
Ответить
Anonymous
 Данные, не отображаемые в полях формы при попытке обновлять, но создают нормально

Сообщение Anonymous »

Я работаю над основным приложением ASP.NET с ядро ​​Entity Framework. Функциональность Create работает нормально - данные сохраняются в базе данных. Однако, когда я пытаюсь отредактировать/обновить записи, поля формы появляются пустыми, даже если данные существуют в базе данных.

Код: Выделить всё

EditForm
action), поля должны быть заполнены существующими данными.
Данные существуют в базе данных (подтвержденные путем отладки).
НЕТ ошибки, но все поля кажутся пустыми.

Код: Выделить всё

 

[h4]Medical History[/h4]


Admitting Diagnosis


Duration of the Symptoms/ Treatment prior to Admission


Treatment Plan


Final Diagnosis Upon Discharge


Previous Treatment and Duration


Health Accessibility Problem




Метод получения (работает нормально - возвращает данные для демографических и классификации ):

Код: Выделить всё

public async Task Get(int id) where T : class
{
var data = await _context.AssessmentTools
.Include(q => q.Demographic)
.Include (q => q.FamilyComposition)
.Include(q => q.HouseHold)
.Include(q => q.Classification)
.Include(q => q.MonthlyExpense)
.Include(q => q.MedicalHistory)
.FirstOrDefaultAsync(x => x.AssessmentToolId == id);

if (data == null)
{
throw new Exception("Form not found");
}

var viewData = _mapper.Map(data);

return viewData;
}
< /code>
Редактировать действия: < /p>
public async TaskEditForm(int id)
{
var form = await _assessmentFormService.Get(id);
return View(form);
}

[HttpPost]
[ValidateAntiForgeryToken]
public async Task EditFormConfirm(AssesmentFormVM model)
{
await _assessmentFormService.UpdateForm(model);
return RedirectToAction(nameof(Index));
}
< /code>
Метод обновления: < /p>
public async Task UpdateForm(AssesmentFormVM form)
{
var existingForm = await _context.AssessmentTools
.Include(q => q.Demographic)
.Include(q => q.FamilyComposition)
.Include(q => q.HouseHold)
.Include(q => q.Classification)
.Include(q => q.MonthlyExpense)
.Include(q => q.MedicalHistory)
.FirstOrDefaultAsync(x =>  x.AssessmentToolId == form.Id);

if (existingForm == null)
throw new Exception("Assessment form not found");

existingForm.AssessmentName = form.AssessmentName;
existingForm.AssessmentStatus = form.AssessmentStatus;
existingForm.DateOfInterview = form.DateOfInterview;
existingForm.TimeOfInterview = form.TimeOfInt;
existingForm.BasicWard = form.BasicWard;
existingForm.NonBasicWard = form.NonBasicWard;
existingForm.HealthRecordNumber = form.HealthRecordNumber;
existingForm.MSWDNumber = form.MSWDNumber;
existingForm.SourceOfReferral = form.SourceOfReferral;
existingForm.Address = form.Address;
existingForm.ContactNumber = form.ContactNumber;
existingForm.Informant = form.Informant;
existingForm.RelationToPatient = form.RelationToPatient;
existingForm.InformantContactNumber = form.InformantContactNumber;
existingForm.InformantAddress = form.InformantAddress;

if (form.Demographic != null)
{
existingForm.Demographic = new Demographic
{
FirstName = form.Demographic.FirstName,
Surname = form.Demographic.Surname,
MiddleName = form.Demographic.MiddleName,
DateOfBirth = form.Demographic.DateOfBirth,
Age = form.Demographic.Age,
Sex = form.Demographic.Sex,
PlaceOfBirth = form.Demographic.PlaceOfBirth,
Gender = form.Demographic.Gender,
Religion = form.Demographic.Religion,
PermanentAddress = form.Demographic.PermanentAddress,
TemporaryAddress = form.Demographic.TemporaryAddress,
ContactNumber = form.Demographic.ContactNumber,

Nationality = form.Demographic.Nationality,
CivilStatus = form.Demographic.CivilStatus,
HighesteEducationAttainment = form.Demographic.HighesteEducationAttainment,
Occupation = form.Demographic.Occupation,
PatientsMonthlyIncome = form.Demographic.PatientsMonthlyIncome,
PhilhealthNumber = form.Demographic.PhilhealthNumber,
PhilHealthMembership = form.Demographic.PhilHealthMembership
};
}

if (form.FamilyComposition != null && form.FamilyComposition.Any())
{
existingForm.FamilyComposition = form.FamilyComposition.Select(q =>  new FamilyComposition
{
Name = q.Name,
RelationshipToPatient = q.RelationshipToPatient,
Age = q.Age,
DateOfBirth = q.DateOfBirth,
LivingWithChild = q.LivingWithChild,
CivilStatus = q.CivilStatus,
Occupation = q.Occupation,
MonthlyIncome = q.MonthlyIncome,
EducationAttainment = q.EducationAttainment
}).ToList();
}

if (form.HouseHold != null)
{
existingForm.HouseHold = new HouseHold
{
OtherSourceIfIncome = form.HouseHold.OtherSourceIfIncome,
HouseHoldSize = form.HouseHold.HouseHoldSize,
TotalhouseHoldIncome = form.HouseHold.TotalhouseHoldIncome,
PerCapitaIncome = form.HouseHold.PerCapitaIncome,
};
}

if (form.Classification != null)
{
existingForm.Classification = new Classification
{
MainClassification = form.Classification.MainClassification,
SubClassification = form.Classification.SubClassification,
MembershipToMargin = form.Classification.MembershipToMargin
};
}

if (form.MonthlyExpenses != null)
{
existingForm.MonthlyExpense = new MonthlyExpense
{
HousingCost = form.MonthlyExpenses.HousingCost,
FoodWaterCost = form.MonthlyExpenses.FoodWaterCost,
ClothingCost = form.MonthlyExpenses.ClothingCost,
TransportationCost = form.MonthlyExpenses.TransportationCost,
CommunicationCost = form.MonthlyExpenses.CommunicationCost,
MedicalCost = form.MonthlyExpenses.MedicalCost,
HouseHelpCost = form.MonthlyExpenses.HouseHelpCost,
OtherCosts = form.MonthlyExpenses.OtherCosts,
LightCost = form.MonthlyExpenses.LightCost,
LightSource = form.MonthlyExpenses.LightSource,
FuelSource = form.MonthlyExpenses.FuelSource,
WaterSource = form.MonthlyExpenses.WaterSource,
TotalExpenses = form.MonthlyExpenses.TotalExpenses,
EducationCost = form.MonthlyExpenses.EducationCost
};
}

if (form.MedicalHistroy != null)
{
existingForm.MedicalHistory = new MedicalHistory
{
AdmitingDiagnosis = form.MedicalHistroy.AdmitingDiagnosis,
FinalDiagnosis = form.MedicalHistroy.FinalDiagnosis,
DurationPriorAdmission = form.MedicalHistroy.DurationPriorAdmission,
PreviousTreatement = form.MedicalHistroy.PreviousTreatement,
TreatmentPlan = form.MedicalHistroy.TreatmentPlan,
HealthAccessibilityIssue = form.MedicalHistroy.HealthAccessibilityIssue
};
}

await _context.SaveChangesAsync();
}
Что я пробовал:
  • Проверенные данные возвращаются из метода Get (это)
  • Проверенная модель Привязка модели - Assesmentformvm Содержит правильные данные, когда можно узнать, что иначеит. Атрибуты
  • Пробовали удалить Automapper, чтобы исключить вопросы отображения
Вопрос : Почему мои поля формы будут выглядеть пустыми при редактировании, даже если данные существуют и передаются в правильное представление? Что может предотвратить отображение значений в полях Textarea?>

Подробнее здесь: https://stackoverflow.com/questions/796 ... -work-fine
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»