ASP.NET MVC 4 JSON绑定到视图模型-嵌套对象错误

皮奥特·沙纳内基(Piotr Czarnecki)

我遇到了将json绑定到视图模型的问题。这是我的代码:

我的ViewModels的一部分(AddressViewModel具有更多属性):

public class AddressViewModel
{
        [Display(Name = "Address_Town", ResourceType = typeof(Resources.PartyDetails))]
        public string Town { get; set; }

        [Display(Name = "Address_Country", ResourceType = typeof(Resources.PartyDetails))]
        public Country Country { get; set; }
}

public class Country : EntityBase<string>
{
        public string Name { get; set; }

        protected override void Validate()
        {
            if (string.IsNullOrEmpty(Name))
            {
                base.AddBrokenRule(new BusinessRule("CountryName", "Required"));
            }
        }
}

Javascript:

$(document).on("click", "#addAddress", function () {
            var jsonData = {
                "Town": $('#txt-Town').val(),
                "District": $('#txt-District').val(),
                "Street": $('#txt-Street').val(),
                "PostCode": $('#txt-PostCode').val(),
                "FlatNumber": $('#txt-FlatNumber').val(),
                "PremiseName": $('#txt-PremiseName').val(),
                "PremiseNumber": $('#txt-Premisenumber').val(),
                "Country": {
                    "Name": $('#txt-Country').val(),
                }
            };
            var addressData = JSON.stringify(jsonData);
            $.ajax({
                url: '/Customer/SaveAddress',
                type: "POST",
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                data: addressData,
                success: function (result) {
                    $("#addIndividualAddressDialog").data("kendoWindow").close();
                },
                error: function (result) {
                    alert("Failed");
                }

            });
        });

控制器头:

[HttpPost]
 public ActionResult SaveAddress(AddressViewModel addressViewModel)

这是我在萤火虫中看到的:

在此处输入图片说明

这就是我在VS中看到的:

在此处输入图片说明

如您所见,普通属性绑定正确,但是我的嵌套对象(国家/地区)为空。我读了很多不同的文章,但我仍然不知道自己在做什么错。请帮帮我!

阿敏·萨奇

问题出在您的操作方法参数上:

[HttpPost]
public ActionResult SaveAddress(AddressViewModel addressViewModel)

使用时JSON.stringify(),您将字符串发送到控制器,而不是对象!因此,您需要做一些工作以实现您的目标:

1)更改操作方法参数:

[HttpPost]
public ActionResult SaveAddress(string addressViewModel)

2)将字符串反序列化为一个对象-即AddressViewModel:

IList<AddressViewModel> modelObj = new 
JavaScriptSerializer().Deserialize<IList<AddressViewModel>>(addressViewModel);

因此,您的最终操作方法应如下所示:

[HttpPost]
public ActionResult SaveAddress(string addressViewModel)
{
    IList<AddressViewModel> modelObj = new 
    JavaScriptSerializer().Deserialize<IList<AddressViewModel>>(addressViewModel);

    // do what you want with your model object ...
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在asp.net mvc 4中回发时未绑定到模型的对象列表

来自分类Dev

如何在ASP.NET MVC 4中显示从模型到另一个视图的列表

来自分类Dev

如何将模型从视图传递到ASP.NET MVC4中的javascript

来自分类Dev

Json和ASP.NET MVC模型绑定

来自分类Dev

如何从视图传递枚举到模型ASP.Net MVC

来自分类Dev

使用GET的ASP.Net MVC模型绑定复杂对象

来自分类Dev

ASP.NET MVC 5模型绑定编辑视图

来自分类Dev

ASP.NET MVC中的问题模型绑定嵌套列表

来自分类Dev

ASP.NET MVC 5模型绑定多个JSON对象(knockoutjs)

来自分类Dev

JSON的ASP.NET MVC 4递归模型绑定

来自分类Dev

如何使用DropDownList绑定到WebGrid剃须刀ASP Net MVC 4中的模型?

来自分类Dev

如何在Asp.Net MVC 4中将复杂属性绑定到多态模型中?

来自分类Dev

ASP.NET MVC:动作未将jQuery ajax发送的值绑定到视图模型

来自分类Dev

ASP.NET MVC模型将单独的日,月,年字符串字段绑定到单个DateTime对象

来自分类Dev

ASP.NET MVC绑定到视图模型

来自分类Dev

ASP.NET MVC绑定嵌套列表

来自分类Dev

ASP.NET MVC Partiel视图模型绑定

来自分类Dev

ASP.NET Core 3 MVC:对象列表的模型绑定

来自分类Dev

ASP.NET MVC 4-从视图更新模型

来自分类Dev

从控制器到ASP.NET MVC 4中的视图的JSON传输

来自分类Dev

具有相关实体的ASP.NET MVC 4错误更新实体框架模型

来自分类Dev

.Net MVC 4-AJAX数据绑定到模型

来自分类Dev

ASP.NET MVC中的问题模型绑定嵌套列表

来自分类Dev

ASP.NET MVC 4绑定

来自分类Dev

ASP.NET MVC 4发送模型-视图到控制器

来自分类Dev

Asp.Net MVC5-通过jqGrid将嵌套模型从视图传递到控制器

来自分类Dev

ASP.NET MVC无法发布绑定到复选框的视图模型

来自分类Dev

ASP.Net MVC DropList 值绑定到错误的属性

来自分类Dev

将json字符串绑定到asp.net MVC中的模型

Related 相关文章

  1. 1

    在asp.net mvc 4中回发时未绑定到模型的对象列表

  2. 2

    如何在ASP.NET MVC 4中显示从模型到另一个视图的列表

  3. 3

    如何将模型从视图传递到ASP.NET MVC4中的javascript

  4. 4

    Json和ASP.NET MVC模型绑定

  5. 5

    如何从视图传递枚举到模型ASP.Net MVC

  6. 6

    使用GET的ASP.Net MVC模型绑定复杂对象

  7. 7

    ASP.NET MVC 5模型绑定编辑视图

  8. 8

    ASP.NET MVC中的问题模型绑定嵌套列表

  9. 9

    ASP.NET MVC 5模型绑定多个JSON对象(knockoutjs)

  10. 10

    JSON的ASP.NET MVC 4递归模型绑定

  11. 11

    如何使用DropDownList绑定到WebGrid剃须刀ASP Net MVC 4中的模型?

  12. 12

    如何在Asp.Net MVC 4中将复杂属性绑定到多态模型中?

  13. 13

    ASP.NET MVC:动作未将jQuery ajax发送的值绑定到视图模型

  14. 14

    ASP.NET MVC模型将单独的日,月,年字符串字段绑定到单个DateTime对象

  15. 15

    ASP.NET MVC绑定到视图模型

  16. 16

    ASP.NET MVC绑定嵌套列表

  17. 17

    ASP.NET MVC Partiel视图模型绑定

  18. 18

    ASP.NET Core 3 MVC:对象列表的模型绑定

  19. 19

    ASP.NET MVC 4-从视图更新模型

  20. 20

    从控制器到ASP.NET MVC 4中的视图的JSON传输

  21. 21

    具有相关实体的ASP.NET MVC 4错误更新实体框架模型

  22. 22

    .Net MVC 4-AJAX数据绑定到模型

  23. 23

    ASP.NET MVC中的问题模型绑定嵌套列表

  24. 24

    ASP.NET MVC 4绑定

  25. 25

    ASP.NET MVC 4发送模型-视图到控制器

  26. 26

    Asp.Net MVC5-通过jqGrid将嵌套模型从视图传递到控制器

  27. 27

    ASP.NET MVC无法发布绑定到复选框的视图模型

  28. 28

    ASP.Net MVC DropList 值绑定到错误的属性

  29. 29

    将json字符串绑定到asp.net MVC中的模型

热门标签

归档