Если это поможет, мы используем страницы ASP.NET Core 2.1 и Razor (не традиционные MVC)
У меня проблемы с работой select.Мы генерируем список параметров для нашей страницы, используя список SelectListItem
, который вводит перечисления, и помещаем его в наши asp-элементы, и это работает потрясающе.Для нашего asp-for мы используем метку, которая увеличивается, потому что имеет цикл из нескольких выпадающих списков.
<select asp-for="@Model.Answers[answerOptionIndex].AnswerText"
asp-items="@Model.CriticalIllnessTierSelectListItems"
class="form-control">
<option></option>
</select>
Для добавления продукта это прекрасно работает, asp-for генерирует Answers[0].AnswerText
для имени иAnswers_0__AnswerText
для идентификатора, и это замечательно.
Беда в том, что нам нужно иметь возможность редактировать существующую форму, поэтому для предварительного заполнения значений я обнаружил, что вы можете использовать asp-for для этого, поэтомуЯ вставил @answerTextForQuestion
для asp-for
, и теперь при загрузке страницы предварительно выбран правильный параметр ... но тогда он портит мои идентификаторы и имя.
Когда я это делаю, я получаю это:
<select name="answerTextForQuestion" class="form-control"
id="answerTextForQuestion">
Что странно, он не устанавливает значение answerTextForQuestion
, просто помещает переменную.
Я пытаюсь вручную установить имя и идентификатор в @Model.Answers[answerOptionIndex].AnswerText
и оставляю asp-for
как @answerTextForQuestion
, но он игнорирует его и по-прежнему вводит @answerTextForQuestion
для вопроса и ответа.
Я не знаю, как получить свой пирог и съесть его.Мне нужно, чтобы мой asp-for был @Model.Answers[answerOptionIndex].AnswerText
, но мне также нужно было выбрать любое значение @answerTextForQuestion
.Поскольку мы используем SelectListItem
, я не могу просто выбросить выбранный атрибут справа.
Я обнаружил переполнение стека, которое пыталось использовать цикл, где, если этот элемент в выбранном соответствует answerTextForQuestion
затем сделайте выбранный атрибут истинным, но это не сработало, и я прочитал в комментариях, что выбранный только для чтения, так что это не сработает. Я выделил это, потому что я боюсь, что это будет опровергнуто как повторяющийся пост.
Редактировать: возможно, лучше заголовок, если есть другой атрибут, который я могу использовать, чтобы сообщить браузеру, какой параметр следует предварительно выбрать без использования ASP-FOR.У нас есть много нашего AJAX, построенного вокруг имени и идентификатора, которые использует ASP-FOR, но мне просто нужна эта одна функция.Я посмотрел документы C #, но ничего не увидел.