В настоящее время у меня есть вид редактирования модели на странице бритвы .net-core.Приведенный ниже код работает с точки зрения выбора значения, которое я передаю для PartId в раскрывающемся списке select2.Моя проблема в том, что, когда я пытаюсь опубликовать снова в форме, не касаясь элемента part, проверка жалуется, что она не установлена.Я видел, что он установлен на 0, когда передается действие на контроллер, который не является правильным.
HTML для детали в форме
<div class="form-group">
<label class="form-label">Part</label>
<select name="PartId" id="selectpicker1" class="form-control" data-style="btn-default">
<option></option>
</select>
<span asp-validation-for="PartId" class="text-danger"></span>
</div>
JS
$('#selectpicker1').select2({
placeholder: 'Select a part',
data: JSON.parse('@Html.Raw(Json.Serialize(Model.PartsList))'),
initSelection: function (element, callback) {
var data= { id: @Model.PartId.ToString(), text: '@Model.PartsList.Where(x=> x.Id == Model.PartId.ToString() ).First().Text'};
callback(data);
}
});
Если я повторно выберу тот же элемент, он будет правильно привязан и отправлен на действие на контроллере.Я не предоставил действие или остальную часть формы, так как эта функция работает правильно.