Я сейчас проверил этот сценарий и могу подтвердить, что данные загружаются нормально - и тогда, когда компонент представления непосредственно включен на страницу или когда он включен в частичное представление.(Я проверял это на страницах Razor - но, вероятно, он будет работать так же, когда используется MVC. Вы не упомянули, используете ли вы страницы MVC или Razor.)
Несколько вещей, которые вы можете попробовать увидетьесли загрузка работает нормально:
1) Из всех «Select» и «Partials» удалите атрибуты «for *».Таким образом, вы можете сначала проверить, загружаются ли данные, а затем беспокоиться о привязке к выбранному элементу.(Кроме того, в предоставленном вами коде вы пропустили переменные модели - поэтому их невозможно прокомментировать.)
2) Удалите последний ";"в вашем _FormCustomer.cshtml
<select asp-for="@Model.Land" class="form-control">
@await Component.InvokeAsync("Countrylist")
</select>
Обратите внимание, что я удалил завершающий ";"в ожидании заявления.Я заметил, что ";"был добавлен как еще один «параметр» в select!
3) Я также заметил, что даже незначительные синтаксические ошибки (не обнаруживаемые Intellisense) могут привести к тому, что select не загружается.Отладка, чтобы увидеть, действительно ли вызывается InvokeAsync - в случае, когда произошла небольшая синтаксическая ошибка, InvokeAsync даже не вызывался.
Также имейте в виду, что:
"Когда создается частичное представление , он получает копию словаря ViewData родителя. Обновления, внесенные в данные в частичном представлении, не сохраняются в родительском представлении. Изменения ViewData в частичном представлениипотерян, когда возвращается частичное представление. "