将两个对象传递给服务器AJAX

时间:2013-11-13 11:38:15

标签: javascript ajax asp.net-mvc-3

我有两个参数的服务器mvc操作:

[HttpPost]
public ActionResult TestActionPost(string applicationId, Dictionary<string, int> myDictionary)
{    
   return null;
}

和ajax请求:

<script type="text/javascript">
    $(document).ready(function () {
        $("#itemList").tableDnD({
            onDrop: function (table, row) {
                var items = $("table#itemList > tbody > tr[id]");
                var dict = [];
                var dataObject = [];
                $.each(items, function (index, value) {
                    dict.push({
                        key: value.id,
                        value: index
                    });
                });
                dataObject.push("123");
                dataObject.push(dict); 

                $.ajax({
                    url: "/Admin/Applications/TestActionPost/",
                    type: "POST",
                    contentType: "application/json; charset=utf-8",

                    data: { applicationId: JSON.stringify(dataObject[0]), myDictionary : JSON.stringify(dataObject[1]) },
                    traditional: true,
                    dataType: "json",

                    success: function (response) {
                        alert(response);                        
                    }
                });
            }
        });
    });
</script>

我尝试将数据发送到服务器操作,但我的操作无法调用。我得到代码HTTP 500。 拜托,帮助我!

1 个答案:

答案 0 :(得分:0)

我认为你对字典串行化的方式存在问题,这会导致在调用操作时抛出异常。 This article解释了如何创建字典对象,然后可以通过ajax发送。