#c# #asp.net #asp.net-mvc
#c# #asp.net #asp.net-mvc
Вопрос:
Модель
public class LeadsVM
{
public LeadsVM()
{
this.leadsList = new List<SingleLeadVM>();
}
public IList<SingleLeadVM> leadsList { get; set; }
// For backup user and assign user
public IEnumerable<UserProfile> users { get; set; }
public LeadDetailsVM leadDetailsVM { get; set; }
[Display(Name = "Lead status")]
public IEnumerable<LeadStatus> leadStatusList { get; set; }
}
Вид
@for (int i = 0; i < Model.leadsList.Count; i )
{
@Html.DropDownListFor(model => Model.leadsList[i].assignedToUserId, new SelectList(Model.users, "UserId", "Email"), "Select user", new { data_val = false, data_users = Model.leadsList[i].leadId, @class = "usersList" })
}
Причина, по которой я использую цикл for, а не foreach, заключается в том, что я могу отправить сбор данных обратно в контроллер. Проблема в том, что даже если значение может быть передано из представления в контроллер и наоборот, я не могу отобразить правильное значение в выпадающем списке (я всегда вижу необязательную метку).
Решение
@Html.DropDownListFor(model => Model.leadsList[i].assignedToUserId, new SelectList(Model.users, "UserId", "Email", Model.leadsList[i].assignedToUserId), "Select user", new { data_val = false, data_users = Model.leadsList[i].leadId, @class = "usersList" })
Комментарии:
1. Если вы считаете, что нашли решение, вы можете ответить на свой вопрос и пометить его как ответ.
2. Также вместо
IEnumerable
make leadStatusListList<SelectListItem>
это облегчит вашу жизнь
Ответ №1:
Исправлено. Оказалось, что я мог бы использовать 4-й параметр конструктора SelectList.
@Html.DropDownListFor(model => Model.leadsList[i].assignedToUserId,
new SelectList(Model.users, "UserId", "Email", Model.leadsList[i].assignedToUserId),
"Select user",
new { data_val = false, data_users = Model.leadsList[i].leadId, @class = "usersList" })