【发布时间】:2018-10-01 16:24:21
【问题描述】:
我有一个 MVC 模型,它根据用户输入生成 JSON 文件,用作自动化工作流程的一部分。我遇到的问题是弄清楚如何根据特定的属性值更改对象列表的序列化顺序。
这是我的模型的简化视图:
public class Ticket
{
public string TicketNumber { get; set; }
public string TicketName { get; set; }
public string ApplicationName { get; set; }
public IList<Jams> JamsList { get; set; }
}
public class RootObject
{
public Ticket ChangeTicket { get; set; }
}
public class JamsDestination
{
public string Dev { get; set; }
public string QA { get; set; }
public string Prod { get; set; }
}
public class Jams
{
public string TFSLocation { get; set; }
public string FileName { get; set; }
public string JamsType { get; set; }
public JamsDestination JamsLocation { get; set; }
}
(我在控制器的 post 部分使用 Newtonsoft.Json 和 SerializeObject() 函数)
JamsType 是从 sql 表(变量、作业、触发器和框)填充的下拉列表。我正在尝试做的是确保所有 Jams 更改(在列表中:JamsList)按照 确保 JamsType = Box 的所有 Jams 更改最后序列化的顺序进行序列化,以确保它将作为我们自动化工作流程的一部分正常运行。 有什么方法可以做到这一点,而无需在视图中设置某种形式的 Javascript 函数以在它们被编入索引之前对其进行重新排序? (我的观点是动态表格设置,因此不能保证每次都会有任何 Jams 更改,更不用说与票证关联了多少)。
【问题讨论】:
-
您可以使用 linq 在传递列表之前对其进行排序。
JamsList.OrderBy(t=> t.JamsType != Box)
标签: c# asp.net-mvc json-serialization