Использование ASP-FOR дважды для одной и той же модели - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть задание, в котором я должен применить раскрывающийся список для штатов США, если в раскрывающемся списке стран выбран вариант «Соединенные Штаты».

Для этого я реализовал два элемента управления: текстовое поле для неиспользуемых состояний и раскрывающийся список для состояний США

        <input class="form-control" type="text" asp-for="BIS232Request.JSONData.RequestingOrg.State" />
        <select class="form-control" asp-for="BIS232Request.JSONData.RequestingOrg.State" id="HeadquartersState"></select>
        <span asp-validation-for="BIS232Request.JSONData.RequestingOrg.State" class="alert-danger"></span>

Однако для государства существует только одно свойство модели

[Required]
[DisplayName("State")]
public string State { get; set; }

Как я могу ссылаться и правильно проверять учет состояния как для текстового поля, так и для раскрывающегося списка

Большое спасибо за помощь!

1 Ответ

0 голосов
/ 01 ноября 2018

Проблема заключается просто в том, что значения как для ввода, так и для выбора публикуются, и одно всегда перезаписывает другое в данных публикации. Вам нужно будет добавить немного JavaScript, чтобы отключить один или другой в зависимости от страны. Если вход или выбор имеют атрибут disabled, он не будет публиковать свое значение, оставляя только значение другого.

$('[name$=Country]').on('change', function () {
    if ($(this).val() === 'US') {
       $('select[name$=State]').removeAttr('disabled');
       $('input[name$=State]').attr('disabled', true);
    } else {
       $('input[name$=State]').removeAttr('disabled');
       $('select[name$=State]').attr('disabled', true);
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...