为什么$('#titthis')。sortable(“serialize”)只返回一个表示'[object Object]'的字符串?

时间:2010-12-16 20:02:22

标签: jquery asp.net-mvc jquery-ui jquery-ui-sortable

我正在尝试获得可排序工作的ajax版本。我有这个Javascript:

 
<script src="/Scripts/jquery-ui/jquery.ui.widget.js" type="text/javascript"></script>
<script src="/Scripts/jquery-ui/jquery.ui.mouse.js" type="text/javascript"></script>
<script src="/Scripts/jquery-ui/jquery.ui.sortable.js" type="text/javascript"></script>
<script type="text/javascript">
    // Sortable
    $(document).ready(function () {
        $("#sortThis").sortable({
            handle: '.handle',
            update: function () {

                // get new order
                var order = $('#sortthis').sortable('serialize');

                // excecute ajax for db update

                $.post(
                    "/find/ajaxactionhere",
                    order,
                    function (data) {
                        $("#info").html(data);
                    }
                );
            }
        });
    });
</script>

这个html在我的asp.net mvc视图中:

<table>
    <thead>
        <tr>
            <th>headers</th>
            <th>headers</th>
        </tr>
    </thead>
    <tbody id="sortThis">
        <% foreach (var item in Model) %>
        <% { %>
            <tr id="list_<%: item.Tier %>">
                <td>
                <img class="handle" src="/sortIcon.gif" />
                </td>
                <td><%: item.data %></td>
</tr>
        <% } %>
    </tbody>
</table>

这成功地允许我重新排序所有表行。我处理ajax post请求的动作是这样的:

    [HttpPost]
    public string ajaxactionhere(FormCollection form)
    {
        StringBuilder sb = new StringBuilder();

        sb.Append(":: ");

        if (form != null)
        {
            foreach (var key in form.AllKeys)
            {
                sb.Append(form[key]);
            }
        }
        else
        {
            sb.Append("null");
        }
        return sb.ToString();
    }

javascript变量order已分配$('#sortthis').sortable('serialize');。每当我显示order时,它会显示“[object Object]”。我无法弄清楚如何将该对象的内容作为字符串。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

您元素的ID为sortThis,资金为T

$('#sortthis').sortable('serialize')将返回空的jQuery对象,以表明它没有找到该选择器的任何匹配元素。

更改

var order = $('#sortthis').sortable('serialize');

var order = $('#sortThis').sortable('serialize');

它应该有用。