Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.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
Javascript 从AJAX调用到C#控制器的参数在不同的机器上映射不同_Javascript_C#_Jquery_Ajax - Fatal编程技术网

Javascript 从AJAX调用到C#控制器的参数在不同的机器上映射不同

Javascript 从AJAX调用到C#控制器的参数在不同的机器上映射不同,javascript,c#,jquery,ajax,Javascript,C#,Jquery,Ajax,我使用jquery ajax调用C#controller的方法,这里是controllers方法: public ActionResult AddRegion(string pageIdIn, string fieldIdIn, RegionMV regionMv) { var fieldRegFormDataOutMv = batchLogic.AddRegion(Session.SessionID, pageIdIn, fieldIdIn, regio

我使用jquery ajax调用C#controller的方法,这里是controllers方法:

public ActionResult AddRegion(string pageIdIn, string fieldIdIn, RegionMV regionMv)
        {
            var fieldRegFormDataOutMv = batchLogic.AddRegion(Session.SessionID, pageIdIn, fieldIdIn, regionMv);
            var json = new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(fieldRegFormDataOutMv);
            return Json(json, JsonRequestBehavior.AllowGet);
        }
以下是ajax调用代码:

function AjaxWrapper(param, url, success, failure, deferred, args) {
       return $.ajax({
            type: "POST",
            url: url,
            data: param,
            // contentType: "application/json; charset=utf-8",
            //dataType: "json",
            success: function (data, textStatus, jqXHR) {
                success(data, args); 
                deferred.resolve();
            },
            error: function (jqXHR, textStatus, errorThrown) {
                // //! call the function that will pop a div in the view to tell the user something went wrong - > failure(response);
                failure(textStatus);
                console.log(jqXHR);
                deferred.reject();
            },
            cache: false
        });
    }
下面是调用ajax方法的代码:

function addRegion(pageId, fieldId, region) {
    var param = { pageIdIn: pageId, fieldIdIn: fieldId, regionMv: region };
    var deferred = $.Deferred();
    showProgress();
    AjaxWrapper(param, window.urlsList.addRegionUrl, updateView, showError, deferred).done(function () {
        hideProgress();
    });
    return deferred.promise();
}
问题是,在我的计算机(使用Windows 7)上,区域json被正确映射到RegionMV对象(具有所有属性和正确的边界框),但在另一台计算机上(使用Windows 10),区域的属性被正确映射到除边界框外的其他对象。 以下是课堂区域MV:

public class RegionMV
    {
        // Index of the region in the parent page
        public string Id { get; set; }

        // Region type
        public RegionType Type { get; set; }

        // Region bounding box
        public RectMV BoundingRect { get; set; }

        // Region confidence as a specific field (determined by the 'Name' property)
        public int FieldConfidence { get; set; }

        // Region name (filled for regions assigned to specific fields or cells)
        public string Name { get; set; }

        // Region text content
        public string Content { get; set; }

        // Region text content filtered as specific field (determined by the 'Name' property) value 
        public string ContentFiltered { get; set; }
    }
你知道为什么会这样吗?是因为不同的操作系统(我有点怀疑,但仍然如此?)还是因为其他原因? 编辑 这是我的RectMV课程:

public class RectMV
    {

        public double X { get; set; }
        public double Y { get; set; }
        public double Width { get; set; }
        public double Height { get; set; }
}

两台机器上的Chrome版本都相同。

发布您的c#
RectMV
model不同的浏览器版本?报告确切的环境,显示序列化数据中的差异可能也很有用。我不确定这是否是您的问题,但我最近在发布带有
$.ajax()
的数据时遇到了麻烦,其中请求正文没有作为JSON发送,即使内容类型显式设置为
“application/JSON”
在Windows 10上,您是否尝试过其他浏览器?这可能是一个有用的测试,可以了解这是浏览器问题还是代码中的某个问题。