是否将JQuery可排序(新订单)保存到ASP.NETMVC控制器?
我已经实现了jquerysortable,它工作得很好。问题是我无法将列表按新顺序传递给控制器,以便保存它是否将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();
<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();
}
列表项返回相应数量的元素,但每个项都是空字符串
如果原始列表如下所示
除非有更好的办法?利用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