Контейнеры Python содержат ссылки на другие объекты. См. Этот пример:
>>> a = []
>>> b = [a]
>>> b
[[]]
>>> a.append(1)
>>> b
[[1]]
В этом b
есть список, содержащий один элемент, который является ссылкой на список a
. Список a
изменен.
Умножение списка на целое эквивалентно добавлению списка к себе несколько раз (см. операции общей последовательности ). Итак, продолжаем с примера:
>>> c = b + b
>>> c
[[1], [1]]
>>>
>>> a[0] = 2
>>> c
[[2], [2]]
Мы видим, что список c
теперь содержит две ссылки на список a
, который эквивалентен c = b * 2
.
Python FAQ также содержит объяснение этого поведения: Как создать многомерный список?
Действия ребенка должны быть вызваны синхронно. Проблема 601 Я также не знаю недавних обновлений текущих библиотек MVC, разрешающих эту функциональность.
Комментарий к выпуску 601, намекает на добавление этой функциональности в MVC vNext, ака. MVC6. Действия ребенка выглядят заменяемыми на ViewComponent
, которые можно асинхронно вызывать из представления, как показано ниже. Здесь приведены примеры здесь и здесь
<div>
@await Component.InvokeAsync("YourComponent")
</div>
Подробнее о MVC6, http://www.asp.net/vnext / overview / aspnet-vnext / overview
Примечание: этот ответ является просто формальностью, поэтому вопрос может быть отмечен как ответ
Обходной путь для этой проблемы заключается в том, чтобы сделать метод синхронным, как требуется MVC, очистить SynchronizationContext, вызвать метод async и дождаться результата, а затем восстановить контекст.
см. мой полный aswer здесь