繁体   English   中英

ASP.NET Core模型未通过AJAX绑定到控制器

[英]ASP.NET Core model not binding to the controller via AJAX

我在很多论坛上都读过,很多时候由于动作的参数具有相同的字段名称,因此模型无法绑定到控制器,但是我将其更改为唯一的名称,但仍然无法使用。 我是从html页面获取对象并使用JSON.Stringify对其进行序列化后传递的,如果在chrome工具中对其进行调试,则在“有效载荷请求”中一切看起来都很完美,但是一旦它击中控制器,模型便为null 。 代码有什么问题?

模型:

public class JsonFileModel
  {
     public string[] Geo { get; set; }
public string[] State { get; set; }

public string[] Variables { get; set; }

public int[] Weights { get; set; }
public string[] Variable_Category { get; set; }

public string UID { get; set; }

}

AJAX电话:

  var geo_graphic_level = $('input[name=geographic-radio-name]:checked').val();
    var state = $('#states-select-id option:selected').val();
    var v = $('#variable-list-select-id option:selected');
    var variables = [];
    var json = "'" + JSON.stringify(variables) + "'";
    $(v).each(function (index, v) {
        variables.push($(this).val())
    });
    var variable_category = $('#categories-select-id option:selected').val();
    var weights = [];
    $("input[name='weight-name']").each(function () {

        weights.push(this.value);

    });

//上面的代码给出了对象的值

    $.ajax({
        type: "POST",
        url: '@Url.Action("Save", "Drive")',
        dataType: "json",
        data: JSON.stringify({
            Geo: geo,
            State: state,
            Variables: variables,
            Weights: weights,
            Variable_Category: variable_category
        }),
        contentType: 'application/json',
        success: function (result) {
            console.log(result);
        },
        error: function (result) {
        }
    });

控制器:

   [HttpPost]
    public JsonResult Save([FromBody] JsonFileModel d)
    {
        //code code 
        return Json("worked");
    }

好吧,所以我定义了错误的属性,例如,当我只期望来自Geo的字符串时,我将模型定义为期望[]数组。 修复后,一切工作正常!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM