Я реализовал поддающийся сортировке 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();
}
Элементы списка возвращаются с corrent числом элементов - кроме каждого объекта, пустые строки.
Если исходный список похож на это
И пользователь перетаскивает и обращается, чтобы быть
Как я могу передать тот новый порядок? Я предполагаю, что идентификатор передает все это, отправляют, удаляют весь список и повторно отправляют этот целый список
если нет лучший путь? Использование в своих интересах Linq (использующий Linq для SQL), где я могу вставить новый порядок на everychange и сделать отправлять изменения?
Все, что мне нужно было сделать, это заполнить поле id для каждого элемента списка, toArray
метод вернул список в порядке после этого
<ul id="sortable">
<% foreach (var item in Model.Roles) { %>
<li id="<%=Html.AttributeEncode(item.Name)%>"><%=Html.AttributeEncode(item.Name)%></li>
<% } %>
</ul>