2015-08-25 1 views
2

donc de travail im avec cet objet anonyme complexeremplacement ViewModel pour le complexe Anonymous Objet

 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 
        } 
       } 
      }; 

Et je veux le convertir en un ViewModel et le retourner comme JSON d'une API de repos.

Ce que je voudrais savoir est

  1. Comment puis-je représenter cela comme un modèle incluant l'élément du tableau entries
  2. Comment puis-je puis ajouter des éléments de tableau au tableau une fois une instance du modèle est
  3. Le modèle a-t-il besoin d'un constructeur pour initialiser le tableau.

Toute aide ou des exemples que vous pourriez fournir serait génial.

Répondre

4

Créer une classe avec la structure:

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; } 
} 

Ensuite, changez votre code à ceci:

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 
        } 
       } 
      }; 
  1. évoqués ci-dessus avec la structure.
  2. Ajouter à la collection comme suit:

    result.Items.Add(new Item { Value = 367, Text = "Month", Prefix = (string)null, Label = (string)null });

  3. je serais initialiser la collection dans le constructeur comme ci-dessus.

Pour revenir JSON de votre action contrôleur ajouter ce qui suit:

return Json(result, JsonRequestBehavior.AllowGet); 
+1

On suppose que vous voulez dire 'publics IList articles {get; ensemble; } ' –

+0

@StephenMuecke Doh, oui désolé. Je l'ai couru dans le tampon Linq aussi. Merci. :) – hutchonoid