2016-01-31 122 views
2

我需要将json传递给MVC中的控制器。我的方法返回一个字符串列表,然后使用字符串数组将其转换为json。由于某些前端复杂性,我应该返回结果作为基本对象的数组,例如而不是["Item1", "Item2", "Item3"]等我需要通过[{item: "Item1"}, {item: "Item2"}, {item: "Item3"}]将字符串列表转换为简单对象列表

我创造了一些可行的方法,但这需要大量的重复。我想知道是否已经有内置的东西,或者只是一个更好的逻辑来完成这样的任务。

一个新的超级基本类:

public class ObjectConverted 
{ 
    public string item { get; set; } 
} 

A转换器类:

public class Converter 
{ 
    public List<ObjectConverted> convertToObjects(IEnumerable<string> listOfStrings) 
    { 
     List<ObjectConverted> listConverted = new List<ObjectConverted>(); 
     foreach (string i in listOfStrings) 
     { 
      ObjectConverted oc = new ObjectConverted(); 
      oc.item = i; 
      listConverted.Add(oc); 
     } 
     return listConverted; 
    } 
} 

并将它传递给像控制器:

public ActionResult Competitors() 
{ 
    IEnumerable<string> strings = getItemStrings(); 
    Converter c = new Converter(); 
    List<ObjectConverted> objects = c.convertToObjects(strings); 

    return Json(objects, JsonRequestBehavior.AllowGet); 
} 

回答

4

如何关于其转换成LINQ其中返回匿名类?

public ActionResult Competitors() 
{ 
    return Json(getItemStrings().Select(x => new { Item = x }), JsonRequestBehavior.AllowGet); 
} 
+0

很好,这条线和我的20+完全一样:)谢谢! – Turo