使用jQuery Json将数据传递给控制器

时间:2015-06-18 17:18:39

标签: jquery json

我是jQuery和Json的新手。我想使用jQuery和Json将下拉列表中的值传递给控制器​​,但无论我做什么,我都会收到错误消息。

这是我的代码:

查看

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="~/Scripts/jquery-1.8.2.js"></script>
<script src="~/Scripts/jquery-1.8.2.min.js"></script>
<script src="~/Scripts/jquery.min.js"></script>

<script type="text/javascript">
    $(document).ready(function () {
        $("#ACT_NO").change(function () {
            var selectedItem = $(this).val();            
            var txt = $("#testID");
            if (selectedItem != null || selectedItem != "")
            {
                $("#testID").replaceWith("VALUE PRESENT");
                $("#testID1").replaceWith(selectedItem);
            }
            $.ajax({
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                data: JSON.stringify({ id: $("#ACT_NO").val() }),
                type: "POST",
                url: '@Url.Action("matterdict/getActionDesc")',
                success: function (data) {
                    alert('successful');
                },
                error: function (xhr, ajaxOptions, thrownError) {
                    alert('Failed to retrieve data.');                    
                }
            });
        });
        $("#ACT_NO").change(function () {
            $("#testID").replaceWith("successful");
        });
    });

</script>

此处ACT_NO是DDL的ID

我的控制器代码

public JsonResult getActionDesc(int act_no)
{
            IEnumerable<string> result = newOps.getAction(act_no);
            return Json(new SelectList(result));
}

我不确定我的代码有什么问题,我们将不胜感激任何帮助。

谢谢..

1 个答案:

答案 0 :(得分:0)

在控制器页面中接收数据时,我们应该使用我们通过json发送的具有相应数据类型的相同属性名来获取json id的值。

在这里,你已经在json中发送'id'作为属性名称,同时通过ajax post发送它并在控制器中使用相同的'id'来获取该值。

    public JsonResult getActionDesc(int id)
    {
        ------
    }