微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c#-通过AJAX将数组传递给Controller Action

我看到了类似的问题,但没有一个帮助我.
我有最简单的代码

    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,使用传统:true,不使用传统:true

在服务器端,我尝试作为参数:object [],object,List<对象&gt ;、列表<字符串&gt ;, IEnumerable<字符串>等等

没事!如何正确做?

解决了:
我的问题很简单-数组的实际值中有一个带有HTML Tag.只需将[ValidateInput(false)]添加到操作方法

解决方法:

public ActionResult JsonGetStatesInfo(string[] instructions)
{
   return new JsonResult
        {
            JsonRequestBehavior = JsonRequestBehavior.AllowGet,
            Data = new { result = instructions.Length}
        };
}

客户端

 var instructions = ['abc', 'dcs', 'arr'];
 $.post('/State/JsonGetStatesInfo', { instructions: instructions },
      function (data) {
       if (data.result!= null && data.result!= undefined) {
        alert(data.result);
    }
});

尝试这个…

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐