所以我正在使用这个复杂的匿名对象

        var result = new
            {
                percentage = "hide",
                bullets = (string)null,
                item = new [] {
                    new {
                        value = 16,
                        text = "Day",
                        prefix = (string)null,
                        label = (string)null
                    },
                    new {
                        value = 41,
                        text = "Week",
                        prefix = (string)null,
                        label = (string)null
                    },
                    new {
                        value = 366,
                        text = "Month",
                        prefix = (string)null,
                        label = (string)null
                    }
                }
            };


我想将其转换为ViewModel并从rest API作为JSON返回。

我想知道的是


我如何将其表示为包括数组项条目的模型
创建模型实例后,如何将数组项添加到数组中
模型是否需要构造函数来初始化数组。


您可以提供的任何帮助或示例都将非常有用。

最佳答案

使用以下结构创建一个类:

public class Result
{
    public Result()
    {
        // initialize collection
        Items = new List<Item>();
    }

    public string Percentage { get; set; }
    public string Bullets { get; set; }
    public IList<Item> Items  { get; set; }

}

public class Item
{
   public int Value { get; set; }
   public string Text { get; set; }
   public string Prefix { get; set; }
   public string Label { get; set; }
}


然后将您的代码更改为此:

var result = new Result
            {
                Percentage = "hide",
                Bullets = (string)null,
                Items = {
                    new Item {
                        Value = 16,
                        Text = "Day",
                        Prefix = (string)null,
                        Label = (string)null
                    },
                    new Item {
                        Value = 41,
                        Text = "Week",
                        Prefix = (string)null,
                        Label = (string)null
                    },
                    new Item {
                        Value = 366,
                        Text = "Month",
                        Prefix = (string)null,
                        Label = (string)null
                    }
                }
            };



上面提到的结构。
添加到集合,如下所示:

result.Items.Add(new Item { Value = 367, Text = "Month", Prefix = (string)null, Label = (string)null });
我将在上面的构造函数中初始化集合。


要从控制器操作返回json,请添加以下内容:

return Json(result, JsonRequestBehavior.AllowGet);

关于c# - 用ViewModel替换复杂的匿名对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32200140/

10-09 00:48