MVC 6 .net核心复杂模型绑定 [英] MVC 6 .net Core complex model binding

查看:55
本文介绍了MVC 6 .net核心复杂模型绑定的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

亲爱的所有人,


我在asp .net Core MVC中遇到了与JSON数据绑定有关的问题,如下所示。


我正在尝试使用JObject将复杂对象绑定到模型。


例如我有以下模型


公共级代理会员

    {

        public short TypeID {get;组; }¥b $ b        public string TypeDescription {get;组; }¥b $ b        public string Name {get;组; }¥b $ b    }


   公共类货币

    {

       公共短ID {get;组; }¥b $ b        public string说明{get;组; }¥b $ b    }


   公共类EventViewModel

    {

        public short TypeID {get;组; }¥b $ b        public string TypeDescription {get;组; }


       公共代理会员新郎{get;组; }


       公众代理会员新娘{get;组; }


       公共日期时间?日期{get;组; }


  &NBSP; &NBSP; &NBSP;公共列表< ActingMember>代理成员{得到;组; }¥b $ b  &NBSP; &NBSP; &NBSP; public string Title {get;组; }¥b $ b  &NBSP; &NBSP; &NBSP; public float EstimatedBudget {get;组; }¥b $ b  &NBSP; &NBSP; &NBSP;公共货币EventCurrency {get;组; }¥b $ b  &NBSP; &NBSP; &NBSP; public float PlannerUserID {get;组; }


  &NBSP; }



我收到以下json


{{ " Groom.Name": " ashgfgdag" " Bride.Name":" kdehfuhsw", " Date":" 10/12/2016 16:12", " TypeID":" 1",  " TypeDescription":"ՀԱՐՍԱՆՅԱՑ
ՀԱՆԴԵՍ", "" Groom.TypeID":" 1" " Bride.TypeID":" 2" " __ RequestVerificationToken" ;:" CfDJ8H_lOK0aUONNs2PK1G9HGekbe8E-2AxE6xdE7wkAFdmUUjFCN3AFJ0Ury7aUciklORzjha0we3vEGhUJyS-PIIQrwuPsEt-w3l1iyEYwhEv0AZmRY8EFEOGJRV9QwFiKyUXy5UE43odB0JipIsC9k6QQ4N-K1LPs4ap_eLyD_piTdjI0wN4MSs8-q2c1DgoU7g"}}



第一级性能,通常结合(日期, TypeID等)但新娘和新郎类型的ActingMember之类的复杂属性没有绑定,点分隔的json属性未映射到此属性。



<这是绑定g part


  &NBSP; &NBSP; &NBSP; [HttpPost]

  &NBSP; &NBSP; &NBSP; [授权]

  &NBSP; &NBSP; &NBSP; public IActionResult Create([FromBody] JObject jsonData)

  &NBSP; &NBSP; &NBSP; {

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; EventViewModel model = jsonData [" viewModel"]。ToObject< EventViewModel>();


  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; .................................


  &NBSP; &NBSP; &NBSP;  }



请告诉我如何解决这个问题。






 

解决方案

< blockquote>

请在
http://forums.asp.net
上询问ASP.NET和网络相关问题。


遗憾的是,无法将线程从MSDN论坛移到ASP.NET论坛,所以你应该在那里开始一个新的线程。


请记得通过将有用的帖子标记为答案来关闭你的主题,然后在适当的论坛中开始一个新的主题,如果你有一个新的问题。请不要在同一个帖子中提出几个问题。


Dear All,

I have a problem related JSON data binding in asp .net Core MVC which is the following.

I'm trying to bind a complex object to a model using JObject.

For example I have the Following models

public class ActingMember
    {
        public short TypeID { get; set; }
        public string TypeDescription { get; set; }
        public string Name { get; set; }
    }

    public class Currency
    {
        public short ID { get; set; }
        public string Description { get; set; }
    }

    public class EventViewModel
    {
        public short TypeID { get; set; }
        public string TypeDescription { get; set; }

        public ActingMember Groom { get; set; }

        public ActingMember Bride { get; set; }

        public DateTime? Date { get; set; }

        public List<ActingMember> ActingMembers { get; set; }
        public string Title { get; set; }
        public float EstimatedBudget { get; set; }
        public Currency EventCurrency { get; set; }
        public float PlannerUserID { get; set; }

    }

I receive the following json

{{  "Groom.Name": "ashgfgdag",  "Bride.Name": "kdehfuhsw",  "Date": "10/12/2016 16:12",  "TypeID": "1",  "TypeDescription": "ՀԱՐՍԱՆՅԱՑ ՀԱՆԴԵՍ",  "Groom.TypeID": "1",  "Bride.TypeID": "2",  "__RequestVerificationToken": "CfDJ8H_lOK0aUONNs2PK1G9HGekbe8E-2AxE6xdE7wkAFdmUUjFCN3AFJ0Ury7aUciklORzjha0we3vEGhUJyS-PIIQrwuPsEt-w3l1iyEYwhEv0AZmRY8EFEOGJRV9QwFiKyUXy5UE43odB0JipIsC9k6QQ4N-K1LPs4ap_eLyD_piTdjI0wN4MSs8-q2c1DgoU7g"}}

The first level properties are binding normally (Date, TypeID etc.) but the complex properties like Bride and Groom type of ActingMember are not binded the dot separated json properties are not mapped to this properties.

here is the binding part

        [HttpPost]
        [Authorize]
        public IActionResult Create([FromBody] JObject jsonData)
        {
            EventViewModel model = jsonData["viewModel"].ToObject<EventViewModel>();

            .................................

         }

Could you please tell me how I can I solve this issue.


 

解决方案

Please ask ASP.NET and web related questions at http://forums.asp.net.

It is unfortunately not possible to move threads from the MSDN forums to the ASP.NET forums so you should start a new thread over there.

Please remember to close your threads by marking helpful posts as answer and then start a new thread in an appropriate forum if you have a new question. Please don't ask several questions in the same thread.


这篇关于MVC 6 .net核心复杂模型绑定的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆