Обновление данных с помощью ASP.NET CoreC#

Место общения программистов C#
Anonymous
Обновление данных с помощью ASP.NET Core

Сообщение Anonymous »

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

Manage.cshtml
вид:

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

@model IEnumerable
@{
ViewData["Title"] = "Manage User";
}

@* Include Modal component *@

@ViewData["Title"]

Add User



//TABLES





User Details

×




@Html.AntiForgeryToken()
@Html.ValidationSummary(true, "", new { @class = "text-danger" })









First Name:


Middle Name:


Last Name:





Email:


Password :


Status:

Unlocked
Locked








Contacts



Modify Information


Submit








@section Scripts {

document.addEventListener('DOMContentLoaded', function () {
var successMessage = '@TempData["SuccessMessage"]';
var errorMessage = '@TempData["ErrorMessage"]';
if (successMessage) {
var successModal = new bootstrap.Modal(document.getElementById('successModal'));
successModal.show();
}
if (errorMessage) {
var errorModal = new bootstrap.Modal(document.getElementById('failModal'));
errorModal.show();
}
});

document.addEventListener('DOMContentLoaded', function () {
var form = document.getElementById('userForm');
var submitButton = document.getElementById('submitButton');
var originalFormValues = {}; // Object to store original form values

// Function to check if form values have changed
function formValuesChanged() {
var formInputs = form.querySelectorAll('input:not([type="checkbox"]), select');
for (var i = 0; i < formInputs.length; i++) {
var input = formInputs[i];
var inputId = input.id;
var inputValue = input.value;
if (originalFormValues[inputId] !== inputValue) {
return true; // Form value changed
}
}
return false; // No changes detected
}

// Function to update originalFormValues with current form values
function updateOriginalFormValues() {
var formInputs = form.querySelectorAll('input:not([type="checkbox"]), select');
for (var i = 0; i < formInputs.length;  i++) {
var input = formInputs[i];
var inputId = input.id;
var inputValue = input.value;
originalFormValues[inputId] = inputValue;
}
}

// Update originalFormValues on page load
updateOriginalFormValues();

// Event listener for form inputs (excluding checkboxes)
form.addEventListener('input', function () {
if (formValuesChanged()) {
submitButton.removeAttribute('disabled');
} else {
submitButton.setAttribute('disabled', 'disabled');
}
});

// Event listener for checkbox to toggle form inputs readonly status
var modifyCheckbox = document.getElementById('modifyCheckbox');
modifyCheckbox.addEventListener('change', function () {
var isReadOnly = !modifyCheckbox.checked;
var formInputs = form.querySelectorAll('input:not([type="checkbox"]), select');
formInputs.forEach(function (input) {
// Disable age field explicitly
if (input.id !== 'modalAge') {
input.readOnly = isReadOnly;
}
});

// Update originalFormValues when modifying is checked
if (!isReadOnly) {
updateOriginalFormValues();
}

// Check if submit button should be enabled
if (formValuesChanged()) {
submitButton.removeAttribute('disabled');
} else {
submitButton.setAttribute('disabled', 'disabled');
}
});
});


}

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

UserController:
[HttpPost]
[ValidateAntiForgeryToken]
public async Task Update(UserView updateUser)
{
var user = await _context.WMS_User
.Include(u => u.UserDetails)
.Include(u => u.Contacts)
.FirstOrDefaultAsync(u => u.UserID == updateUser.UserID);

user.Status = updateUser.Status;
user.UserDetails.FirstName = updateUser.FirstName; // Assuming FirstName is editable
user.UserDetails.MiddleName = updateUser.MiddleName;
user.UserDetails.LastName = updateUser.LastName;
user.UserDetails.Email = updateUser.Email;

user.ModifiedBy = "SYSTEM";
user.ModifiedDate = DateTime.Now;

user.UserDetails.FirstName = updateUser.FirstName;
user.UserDetails.MiddleName = updateUser.MiddleName;
user.UserDetails.LastName = updateUser.LastName;
user.UserDetails.Email = updateUser.Email;

user.UserDetails.ModifiedBy = "SYSTEM";
user.UserDetails.ModifiedDate = DateTime.Now;

// Handle new contacts
foreach (var newContact in updateUser.Contacts)
{
var contact = new UserContact
{
UserID = user.UserID,
ContactType = newContact.ContactType,
ContactNumber = newContact.ContactNumber,
ModifiedBy = "SYSTEM",
ModifiedDate = DateTime.Now
};
user.Contacts.Add(contact);
}

await _context.SaveChangesAsync();

return RedirectToAction("Manage", "User");
}
Изображение


Изображение

Может кто-нибудь мне помочь? Я столкнулся с проблемой во время обновления данных с помощью ASP.NET Core. Я пытаюсь обновить данные пользователя, но после отправки формы значение модального окна было нулевым.
До этого у меня были таблицы, и в этих таблицах отображались все пользователи каждого пользователя. теперь есть кнопка просмотра, когда пользователь нажимает кнопку просмотра, теперь отображаются соответствующие сведения об этом пользователе, если пользователь хочет изменить информацию, просто установите флажок, чтобы изменить ввод только для чтения, становится ложным. Я пытаюсь обновить фамилию, но проблема с нулевым значением.

Подробнее здесь: https://stackoverflow.com/questions/788 ... p-net-core

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