是否将JQuery可排序(新订单)保存到ASP.NETMVC控制器?

是否将JQuery可排序(新订单)保存到ASP.NETMVC控制器?,jquery,jquery-ui,asp.net-mvc-2,jquery-ui-sortable,Jquery,Jquery Ui,Asp.net Mvc 2,Jquery Ui Sortable,我已经实现了jquerysortable,它工作得很好。问题是我无法将列表按新顺序传递给控制器,以便保存它 <script type="text/javascript"> $(document).ready(function() { $("#sortable").sortable({ axis: "y" }); }); $(function() { $("#submit-list").button();

我已经实现了jquerysortable,它工作得很好。问题是我无法将列表按新顺序传递给控制器,以便保存它

<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>  

$(文档).ready(函数(){
$(“#可排序”).sortable({axis:y});
});  
$(函数(){
$(“#提交列表”).button();
$(“#提交列表”)。单击(函数(){
调试器;
$.ajax({
url:“/Admin/sortedList/”,
数据:{items:$(“#sortable”).sortable('toArray')},
键入:“post”,
传统的:真的
});  
});  
});  
编辑角色
和我的控制器:

[HttpPost]  
    public EmptyResult SortedLists(List<string> items)  
    {  
        return new EmptyResult();  
    }  
[HttpPost]
公共清空结果分类列表(列表项)
{  
返回新的EmptyResult();
}  
列表项返回相应数量的元素,但每个项都是空字符串

如果原始列表如下所示

  • 1辆车
  • 两艘
  • 3-摩托车
  • 4-平面
  • 而用户拖拽和求助于

  • 4-平面
  • 1辆车
  • 3-摩托车
  • 两艘
  • 我怎样才能通过那个新订单?我想我会在提交时通过整个过程,删除整个列表,然后重新提交整个列表


    除非有更好的办法?利用Linq(使用Linq to SQL),我可以在everychange上插入新订单并提交更改?

    我所要做的就是填写每个列表项的id字段,然后方法返回列表

    <ul id="sortable">  
        <% foreach (var item in Model.Roles) { %>                  
            <li id="<%=Html.AttributeEncode(item.Name)%>"><%=Html.AttributeEncode(item.Name)%></li>                                                                                    
        <% } %>             
    </ul>  
    

    在表中,您可以创建隐藏的输入,这可以帮助您将值发布到控制器,而不是轻松保存;)

    应该是这样的:

    <form method="post" action="~/NameController/yourAction">
       <ul id="sortable1">
    
        <li><input type="hidden" id="id" name="Id"/></li>
        <li><input type="hidden" id="UserId" name="UserId"/></li>
        <li><input type="hidden" id="TeamId" name="TeamId"/></li>
    
     </ul>
      <button type="submit">Save</button>
    </form>
    
    
    
    拯救

    希望有帮助;)

    我想了一件事,虽然不确定它是否有效,但如果你的id与页面上的其他内容冲突怎么办?例如,我使用多个列表,其中列表的每个父项都有一个数字id,每个项都有一个数字id,并且父项id和子项id的范围重叠。这样做,可以打破每个元素都有唯一id的规则。因此,我在id前面加了一些东西,例如“parent”+id和“child”+id