Я работаю над формой для манипулирования данными пользователя / сотрудника в моем приложении.
У меня есть простой раскрывающийся помощник выбора тега (за которым следует метка для вывода текущего значения), чтобы изменитьРегиональный менеджер по продажам сотрудника:
<select asp-for="Employee.RegionalSalesManager" asp-items="Model.RegionalSalesManagers" disabled="@(Model.EmployeeRole == 1 ? null : "disabled")">
<option value="0">Select...</option>
</select>
<label id="lblRegionalSalesManagerID">@((Model.Employee != null) ? Model.Employee.RegionalSalesManager.ToString() : @"")</label>
Это прекрасно работает при первоначальной загрузке Model.Empolyee
из базы данных;в представлении тег выбора (раскрывающееся меню) показывает правильный элемент (Региональный менеджер по продажам), и соответствующее значение выводится в метке:
Хорошее раскрывающееся меню
Другая часть формы позволяет изменить роль сотрудника - в зависимости от роли назначение регионального менеджера по продажам может не понадобиться.При изменении роли сотрудника форма публикуется, а если назначение Регионального менеджера по продажам не требуется, значение Model.Employee.RegionalSalesManger
обнуляется:
[HttpPost, ValidateAntiForgeryToken]
public async Task<IActionResult> Index(UserManagementViewModel model)
{
if (model.Employee != null)
{
switch (model.EmployeeRole)
{
case 2: // employee Role is Regional Sales Manager
model.Employee.RegionalSalesManager = 0; // no need for assignment
break;
}
}
return View(await BuildModel(model));
}
При обновлении представления логика в помощнике тега select disabled="@(Model.EmployeeRole == 1 ? null : "disabled")
запускает и отключает меню соответствующим образом, а метка показывает, что значение действительно было успешно обнулено;однако меню по-прежнему показывает последний выбор, когда я ожидаю, что в нем будет отображаться элемент «Выбор ...», поскольку этот элемент соответствует нулевому значению:
Неожиданное раскрывающееся меню
Повторная отправка еще раз (путем изменения роли на другую, для которой не требуется назначение регионального менеджера по продажам) приводит к тому, что элемент меню устанавливается на «Выбрать ...»
Чего мне здесь не хватает?Модель представления возвращается с ожидаемым значением после первого постбека;почему выбор меню не обновляется?