【问题标题】:MVC3 autobinding to list of JSON objects is not working for the propertiesMVC3 自动绑定到 JSON 对象列表不适用于属性
【发布时间】:2012-01-31 17:54:34
【问题描述】:

我有一组要发布到 MVC3 控制器的 JSON 对象。根据我运行的提琴手检查,JSON 似乎发布得很好。 (包括在下面)控制器正在接受我设置的自定义类来接收 JSON 数据。这似乎也可以正常工作(下面包含调试器屏幕截图)问题是对象属性似乎不像我期望的那样自动绑定。名称都匹配,我不确定问题。

jquery在下方(先点击添加到数组,再点击发布数据)

var removes = [];
var adds = [];

var transaction = {
    'adds': adds,
    'removes': removes
};

jQuery(".AddCardLink").click(function () {
            var card = [{
                Id: jQuery(this).attr("cardid"),
                Name: jQuery(this).attr("cardname")
            }];
            transaction.adds.push(card);
        })

jQuery("#btnSave").click(function () {
            jQuery.ajax({
                type: "POST",
                url: "/SaveTransactionLog",
                data: JSON.stringify(transaction),
                dataType: "json",
                contentType: "application/json",
                success: function (data) {
                   alert("Test");
                }
            });
        });

这是发送数据的提琴手视图

自定义类和控制器如下:

public class Card
{
  public int Id { get; set; }
  public string Name { get; set; }
}

public class JsonTransaction
{
     public List<Card> Adds { get; set; }
     public List<Card> Removes { get; set; }
}

[HttpPost]
public JsonResult SaveTransactionLog(JsonTransaction transaction)
{ 
   return  Json()
}

最后,这是调试器查看JsonTransaction,可以看到自动绑定设置了正确的列表,但是列表属性中的Card是空的。

如果你坚持到最后,谢谢!任何帮助都会很棒!

【问题讨论】:

    标签: json asp.net-mvc-3


    【解决方案1】:

    啊!在花了整个周末,昨天终于在 SO 上发帖后,我发现了我的问题!

    我的 Jquery 当我通过 onclick 添加对象时,我的对象周围多了一个方括号。删除方括号解决了我的问题。

    jQuery(".AddCardLink").click(function () {
                var card = **[**{
                    Id: jQuery(this).attr("cardid"),
                    Name: jQuery(this).attr("cardname")
                }**]**;
                transaction.adds.push(card);
            })
    

    【讨论】:

      猜你喜欢
      • 2011-10-22
      • 2013-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-23
      • 1970-01-01
      • 1970-01-01
      • 2020-04-22
      相关资源
      最近更新 更多