He implementado JQuery ordenable, y funciona bien. El problema es que no puedo pasar la lista en su nuevo orden a un controlador para poder guardarla.¿Guardar JQuery ordenable (nuevo pedido) para el controlador ASP.Net MVC?
<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>
y mi controlador:
[HttpPost]
public EmptyResult SortedLists(List<string> items)
{
return new EmptyResult();
}
elementos de la lista vuelve con el número de elementos Corrent - excepto que cada elemento son cadenas vacías.
Si la lista original están presentes
- 1 - coches
- 2 - Barco
- 3 - Motocicleta
- 4 - Plano
Y el usuario arrastra y centros turísticos ser
- 4 - Plano
- 1 - coches
- 3 - Motocicleta
- 2 - Barco
¿Cómo puedo pasar ese orden nuevo? Supongo que id pasar todo el asunto en el envío, eliminar toda la lista y volver a enviar toda esta lista
a menos que haya una mejor manera? ¿Aprovechando Linq (usando Linq a SQL) donde puedo insertar el nuevo pedido en cada cambio y hacer un envío?
Una cosa en la que pensé, aunque no estoy seguro de si es válida o no, ¿qué pasa si el conflicto de su id con algo más en la página? Por ejemplo, estoy usando múltiples listas, donde cada padre de la lista tiene una identificación numérica, y cada elemento tiene una identificación numérica, y los rangos de la identificación padre e hijo se superponen. Por lo tanto, al hacer esto, puede romperse la regla de que cada elemento tenga una identificación única. Por lo tanto, prefiero algo al ID, p. "padre" + id, e "hijo" + id – jamiebarrow