通过AJAX将数组传递给控制器操作

10 浏览
0 Comments

通过AJAX将数组传递给控制器操作

我看到了类似的问题,但都没有帮助到我。

我有最简单的代码:

    public JsonResult JsonGetStatesInfo(object[] instructions)
    {
        if (Request.IsAjaxRequest())
        {
            return Json(String.Empty);
        }
        else
            throw new NoAjaxRequestException();
    }

客户端代码如下:

            var instructions = [];
            instructions.push('abc');
            instructions.push('ddd');
            instructions.push('assdbc');
            var inst = JSON.stringify(instructions);
            $.ajax({
                cache: false,
                data: { 'instructions': inst },
                traditional: true,
                dataType: 'json',
                url: '/State/JsonGetStatesInfo',
                type: 'post',
                success: function (resp) {
                },
                error: function (data) {
                    alert(data.error);
                }
            });

在客户端,我尝试了使用JSON.stringify,不使用JSON.stringify,使用traditional: true,不使用traditional: true

在服务器端,我尝试了参数类型为: object[],object,List< object >,List< string >,IEnumerable< string >等等

一切都不起作用!如何正确处理呢?

解决方案

我的问题很简单 - 数组中的一个真实值含有HTML标签。只需在操作方法中添加[ValidateInput(false)]即可。

0