Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 控制器上的Ajax Json数据为空_Jquery_Ajax_Json_Asp.net Mvc 3 - Fatal编程技术网

Jquery 控制器上的Ajax Json数据为空

Jquery 控制器上的Ajax Json数据为空,jquery,ajax,json,asp.net-mvc-3,Jquery,Ajax,Json,Asp.net Mvc 3,我正在控制器中捕获帖子,但是字符串formData为空。因此,我也无法使用“防伪”属性,因为似乎所有数据都丢失了。也许我不应该使用serialzeArray 我的帖子: $("#SetCommunicationSettingsForm").submit(function (e) { debugger; var postData = $(this).serializeArray(); var formURL = $(t

我正在控制器中捕获帖子,但是
字符串formData
为空。因此,我也无法使用“防伪”属性,因为似乎所有数据都丢失了。也许我不应该使用
serialzeArray

我的帖子:

    $("#SetCommunicationSettingsForm").submit(function (e) {
            debugger;
            var postData = $(this).serializeArray();
            var formURL = $(this).attr("action");
            $.ajax(
            {
                url: formURL,
                type: "POST",
                datatype:"json",
                data: postData,
                success: function (data) {
                    debugger;
                    //data: return data from server
                    if (data.success == true) {
                        $("#SaveSuccessful").show();
                        $("#SetCommunicationSettingsFormArea").hide();
                        $("#SumbitCommunicationSettingForm").val('<%: ServiceSite.Resources.Resources.COMMON_CLOSE %>');
                        $("#SumbitCommunicationSettingForm").unbind('click');
                        $("#SumbitCommunicationSettingForm").click(closeCommunicationSettingPopup);
                        $("#CancelCommuncationSettingButton").hide();
                    }
                    else {
                        $("#DeviceCommuncationSettingLocation").html(data);
                    }
                }
            });
            e.preventDefault(); //STOP default action
        });
$(“#设置通信设置表单”).submit(函数(e){
调试器;
var postData=$(this.serializeArray();
var formURL=$(this.attr(“操作”);
$.ajax(
{
url:formURL,
类型:“POST”,
数据类型:“json”,
数据:postData,
成功:功能(数据){
调试器;
//数据:从服务器返回数据
if(data.success==true){
$(“#SaveSuccessful”).show();
$(“#设置通信设置格式区域”).hide();
$(“#SumbitCommunicationSettingForm”).val(“”);
$(“#SumbitCommunicationSettingForm”)。取消绑定('click');
$(“#Sumbit通信设置窗体”)。单击(关闭通信设置弹出窗口);
$(“#取消通讯设置按钮”).hide();
}
否则{
$(“#设备通信设置位置”).html(数据);
}
}
});
e、 preventDefault();//停止默认操作
});
我的控制器:

  [HttpPost]
    //[AuthorizeActionFilter]
    //[ValidateAntiForgeryToken (Salt= "UpdateCommunicationSettings")]
    public ActionResult UpdateCommunicationSettings(String formData)
    {
        //Decode parameters 
        JavaScriptSerializer ser = new JavaScriptSerializer();
        Dictionary<String, Object> jsonParams = ser.Deserialize<Dictionary<String, Object>>(formData);

        //verify permissions on server side
        if (((List<string>)Session["AuthorizedActions"]).Contains("EditDeviceCommunicationSettings"))
        {
            // Build DeviceData.DeviceConfigurationSettings from model, pass to DAL to Save
            List<long> deviceIds = GetSelectedDevicesFromSession();

            foreach (long id in deviceIds)
            {

            }

            return PartialView("DeviceCommunicationSettingDialog");
        }
        else
        {
            return Json(new { notAuthorized = true });
        }
    }
[HttpPost]
//[授权操作筛选器]
//[ValidateAntiForgeryToken(Salt=“UpdateCommunicationSettings”)]
公共操作结果更新通信设置(字符串格式数据)
{
//解码参数
JavaScriptSerializer ser=新的JavaScriptSerializer();
字典jsonParams=ser.Deserialize(formData);
//验证服务器端的权限
如果(((列表)会话[“AuthorizedActions”])包含(“EditDeviceCommunicationSettings”))
{
//从模型生成DeviceData.DeviceConfiguration设置,传递到DAL保存
List DeviceID=GetSelectedDevicesFromSession();
foreach(设备id中的长id)
{
}
返回PartialView(“DeviceCommunicationSettingDialog”);
}
其他的
{
返回Json(新的{notAuthorized=true});
}
}

您发布的是一个json对象,而不是字符串。
因此您可以通过以下方式将json转换为字符串:

var jsonStr = JSON.stringify(json);
不要这样做,请尝试使用FormCollection:

public ActionResult UpdateCommunicationSettings(FormCollection formData)
{
}
您需要停止序列化

另外,您可以使用与客户端上的json模式相同的类,它将处理绑定