Вот одна небольшая заметка, которая может помочь.
<% foreach (var item in Model.Amici)
{%>
<div id="amico_" idAmico="">
<%= item.Name %>
</div>
<% } %>
В этом примере, основываясь на вашем селекторе jQuery, я думаю, что вы ожидаете, что идентификатор каждого div будет «amico_1», «amico_2» и т. Д.… Возможно, на основе идентификатора элемента? В любом случае атрибут id должен быть уникальным.
<% foreach (var item in Model.Amici)
{%>
<div id="amico_<%= item.Id %>" idAmico="" class="drag">
<%= item.Name %>
</div>
<% } %>
Обратите внимание, что я добавил класс "перетаскивания" в div.
Это означает, что ваш селектор может быть обновлен с этого:
$("div[id^='amico_']").draggable({ revert: "valid" });
К этому
$ (". Drag"). Draggable ({revert: "valid"});
И мое последнее предположение, что у вас есть небольшая ошибка в этой строке ...
var index = $(".ui-draggable").attr('idAmico');
должно быть
var index = $(ui.draggable).attr('idAmico');
Вы должны заметить, что есть параметр с именем ui, который передается в ваше событие сбрасывания. Содержит текущий перетаскиваемый элемент.
Надеюсь, это поможет.