Я реализовал сортировку JQuery, и она отлично работает. Проблема в том, что я не могу передать список в новом порядке контроллеру, чтобы сохранить его.
<script type="text/javascript">
$(document).ready(function() {
$("#sortable").sortable({ axis: "y" });
});
$(function() {
$("#submit-list").button();
$("#submit-list").click(function() {
debugger;
$.ajax({
url: '/Admin/SortedLists/',
data: { items: $("#sortable").sortable('toArray') },
type: 'post',
traditional: true
});
});
});
</script>
<h2>Edit Roles</h2>
<div>
<ul id="sortable">
<% foreach (var item in Model.Roles) { %>
<li>
<%=Html.AttributeEncode(item.Name)%>
</li>
<% } %>
</ul>
<input type="submit" value="Save" id="submit-list"/>
</div>
и мой контроллер:
[HttpPost]
public EmptyResult SortedLists(List<string> items)
{
return new EmptyResult();
}
Элементы списка возвращаются с соответствующим количеством элементов - за исключением того, что каждый элемент является пустой строкой.
Если исходный список выглядит следующим образом
- 1 - Автомобиль
- 2 - лодка
- 3 - мотоцикл
- 4 - Самолет
А пользователь тащит и превращается в
- 4 - Самолет
- 1 - Автомобиль
- 3 - мотоцикл
- 2 - лодка
Как мне пройти этот новый заказ? Я предполагаю, что id передаст все это при отправке, удалит весь список и повторно отправит весь этот список
разве есть лучший способ? Воспользовавшись Linq (используя Linq to SQL), где я могу вставить новый заказ в каждое изменение и внести изменения?