MVC将Json对象集合绑定到控制器动作

时间:2012-12-14 09:36:06

标签: asp.net-mvc json asp.net-mvc-4

有没有办法将一组对象发送给MVC动作?

查看:

        $(".iconDocumentText").click(function (e) {
            e.preventDefault();
            var $inputs = $("form.form :input:not('.submit')");
            var values = {}; // get search form values
            $inputs.each(function () {
                if ($(this).val()) {
                    values[this.name] = $(this).val();
                }
            });
            console.log(JSON.stringify(values));
            $.ajax({
                url: "@Url.Action("Export","Log")",
                data: JSON.stringify(values),
                contentType: 'application/json',
                type: 'GET',
                success: function (data) {
.........
                }
            });
        });

我没试过就试过这个:

    public ActionResult Export(Dictionary<string, string> values)
    {
....

这是发送给控制器操作的内容:

{"f_device":"4","f_package":"AGI-VS-GAME-M52-1.5.3.2.67"}

1 个答案:

答案 0 :(得分:4)

您还必须指出它是数据类型json并直接传递它们:

脚本:

$.ajax({
    url: "@Url.Action("Export","Log")",
    data: values,
    contentType: 'application/json',
    type: 'GET',
    dataType: 'json'
});

控制器:

public ActionResult Test(int f_device, string f_package)
{

编辑:

但是如果要检索字典,可以将数据封装在对象中:

脚本:

$.ajax({
    url: "@Url.Action("Export","Log")",
    data: { values : values },
    contentType: 'application/json',
    type: 'GET',
    dataType: 'json'
});

控制器:

public ActionResult Test(Dictionary<string, string> values)
{