У нас есть система для управления различными аспектами строительства Торговцы в Великобритании.
Мы добавляем новый раздел для управления их Аккредитациями и хотели бы упростить нашу текущую реализацию.
Мы хотим иметь List<int>
в нашей ViewModel, но не уверены, как мы пишем в него из нашего View. См. Вопросы в коде псевдо-просмотра ниже:
Мы используем Kendo, если это помогает.
ViewModel
AccreditationApprovalViewModel.cs
public class AccreditationApprovalViewModel : ApprovalViewModel
{
// currently have:
// public bool HasAccreditation1;
// public bool HasAccreditation2;
// …
// public bool HasAccreditationN;
// We want to change the individual bools above to:
[DisplayName(“Has Accreditation“)]
public List<int> HasAccreditations;
}
Просмотр
AccreditationApproval.cs html
Здесь есть несколько логических элементов управления флагами:
-
Accreditation1Flag
- если установлено значение true, int 1 добавляется в список HasAccreditations в ViewModel (если еще не в списке)
- если установлено значение false, int 1 удаляется из Список HasAccreditations в ViewModel
Accreditation2Flag
- если установлено значение true, int 2 добавляется в список HasAccreditations в ViewModel (если его еще нет в списке)
- если установлено значение false, int 2 удаляется из списка HasAccreditations в ViewModel
Аналогично для аккредитации 3, 4, 5 и т. Д. c
Наши два вопроса:
- как создать EditorFor entr y, чтобы он мог записывать в
List<int>
в ViewModel - как нам объединить число с DisplayString в LabelFor?
@Html.LabelFor(model => model.HasAccreditations.Concat(" 1"))
@Html.EditorFor(model => model.HasAccreditations[0]) @* bool control writing to int in array *@
@Html.LabelFor(model => model.HasAccreditations.Concat(" 2"))
@Html.EditorFor(model => model.HasAccreditations[1]) @* bool control writing to int in array *@