如何以空数组作为值传递字典

时间:2018-11-29 11:13:46

标签: javascript c# asp.net-mvc

我有这个Gain2

class

动作:

public class State{  
        public Dictionary<SecurityType, List<long>> assets { get; set; }
    }

当我尝试传递类似这样的内容时:

[HttpPost]
public virtual ActionResult GetHoldings(State state)
{
        return Json(new HoldingsBL().GetHoldings(state));
}

public enum SecuritySerachType
    {
        Company = 1,
        Security,
    }

我的资产属性词典为空。

我已经阅读了this解决方案,但是我不知道如何解决我的问题。

一些简单的解决方案?

编辑: 我尝试像Oleksii Aza所说的那样添加ValueProviderFactory,但是将它与backingStore进行比较存在一个问题(已经存在字典检查,可能是针对嵌套对象的):

{state:{assets :[{"Key":1,"Value":[]}]}}

所以我仍然坚持这个问题。

1 个答案:

答案 0 :(得分:0)

尝试对C#字典使用类似对象的JSON结构,例如:

using System;
using System.Collections.Generic;
using Newtonsoft.Json;

public class Program
{
    public enum SecuritySerachType
    {
        Company = 1,
        Security,
    }
    public class State{  
        public Dictionary<SecuritySerachType, List<long>> assets { get; set; }
    }

    public static void Main()
    {
        var state = JsonConvert.DeserializeObject<State>(@"{assets :{""1"":[]}}");
        Console.WriteLine(state.assets[SecuritySerachType.Company].Count);
    }
}

链接到dotnet fiddle