У меня есть выпадающий список, в котором есть 2000 элементов. Я пытался связать это так:
@(Html.Kendo().MultiSelect().Name("kendo-dropdown-manager")
.DataValueField("Value")
.DataTextField("Text")
.Placeholder("Select Entity")
.BindTo(Model.ManagersList)
На моей странице Razor я использую асинхронно 'Get':
public class IndexModel : PageModel
{
public IndexModel()
{
this.ManagersList = new List<SelectListItem>();
}
public List<SelectListItem> ManagersList { get; private set; }
public Task OnGetAsync()
{
ViewsController viewsController = new ViewsController();
List<ManagerViewModel> managers = await viewsController.GetManagersAsync();
this.ManagersList.AddRange(
from m in managers
select new SelectListItem
{
Value = m.Id.ToString(),
Text = m.Name
});
}
}
Когда появляется страница, раскрывающийся список пуст. Если я изменю 'OnGetAsync' на полностью синхронную версию, выпадающий список будет заполнен правильно. На моей странице есть несколько похожих элементов управления, и я не хочу загружать их синхронно. Как правильно запустить операцию, чтобы элементы управления Kendo перехватывали результаты, когда они возвращались?