Установка значения в раскрывающемся списке с помощью Razor в ASP.NET 4.8C#

Место общения программистов C#
Anonymous
Установка значения в раскрывающемся списке с помощью Razor в ASP.NET 4.8

Сообщение Anonymous »

Я пытаюсь перенести данные в представление с помощью Razor, но он не работает только для раскрывающегося списка.
Я могу получить значения почти для всех полей представления, за исключением того, что раскрывающийся список не обновляется выбранным значением. Во время отладки я смог подтвердить, что значение присутствует в модели для всех полей (включая то, которое будет использоваться в раскрывающемся списке).
Модель:

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

public class MainViewModel
{
public string Prop1 { get; set; }
public ComboList CodesToSelect { get; set; }
public List Details { get; set; }

public MainViewModel()
{
FillCombo();
}

private void FillCombo()
{
CodesToSelect = Helpers.CreateComboCodesToSelect();
}
}

public class DetailMainViewModel
{
public string DetailProp1 { get; set; }
public int DetailProp2 { get; set; }
public string DetailProp3 { get; set; }
public Code? SelectedCode { get; set; }
public DateTime? DetailDate { get; set; }
}
Просмотр:

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

@model MainViewModel


Title

@for (int i = 0; i < Model.Details.Count; i++)
{


@Html.LabelFor(d => d.Details[i].DetailProp2, new { @class = "control-label" })
@Html.TextBoxFor(d => d.Details[i].DetailProp2, new { @class = "form-control", @readonly = "readonly" })

@Html.LabelFor(d => d.Details[i].DetailProp3, new { @class = "control-label" })
@Html.TextBoxFor(d => d.Details[i].DetailProp3, new { @class = "form-control", @readonly = "readonly" })

@Html.LabelFor(d => d.Details[i].SelectedCode, new { @class = "control-label" })
@Html.DropDownListFor(d => d.Details[i].SelectedCode, Model.CodesToSelect.ToSelectList(), new { @class = "form-control", @readonly = "readonly" })

@Html.LabelFor(d => d.Details[i].DetailDate, new { @class = "control-label" })
@Html.TextBoxFor(d => d.Details[i].DetailDate, new { @class = "form-control", @readonly = "readonly" })


}


Как было сказано ранее, почти все поля из DetailViewModel (

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

DetailProp2
, DetailProp3 и DetailData) заполняются и правильно отображаются на экране. Но SelectedCode, очевидно, игнорируется, а в раскрывающемся списке всегда отображается первый элемент списка. Нужно ли что-нибудь еще для обновления раскрывающегося списка с помощью «d.Details.SelectedCode»? Что я мог там упустить?
Это мой первый пост здесь, поэтому, пожалуйста, подскажите, как его улучшить.

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