2012-04-08 11 views
1

Ich versuche, Daten aus der folgenden Klasse zu erhalten:MVC JSON Data Object

public class SalesData 
    { 
     public string RepName { get; set; } 

     public string DateString { get; set; } 

     public decimal TotalSales { get; set; } 

     public decimal RepSales { get; set; } 
    } 

    public static class SalesDataBuilder 
    { 
     public static List<SalesData> GetCollection() 
     { 
      return new List<SalesData> 
      { 
       new SalesData 
       { 
        RepName = "Nancy Davolio", 
        DateString = "Aug 2010", 
        TotalSales = 10458, 
        RepSales = 2015 
       }, 

       new SalesData 
       { 
        RepName = "Nancy Davolio", 
        DateString = "Sept 2010", 
        TotalSales = 21598, 
        RepSales = 6003 
       }, }; 
     } 

Mit Json in meinem Controller habe ich versucht, die folgenden:

public JsonResult IndexJson() 
     { 
      IEnumerable<SalesData> person = (from e in SalesData 

                select new SalesData 
               { 
                RepName = e.RepName, 
                RepSales = e.RepSales 
               }); 
      return Json(person); 
     } 

Sicherlich ich etwas falsch mache, sehr neu für json. Ich würde Ihre Vorschläge schätzen. Danke im Voraus.

+3

also ... was ist deine Frage/Problem? –

+0

Das jsonResult im Controller funktioniert nicht! – hncl

+2

Wie funktioniert es nicht? Kannst du das nicht auf der Clientseite konsumieren? Gibt es ein Fehler- oder Kompilierungsproblem? Das ist keine Frage. – Tommy

Antwort

1

Ihr Code wird nicht einmal kompiliert. Sie rufen nie die SalesDataBuilder.GetCollection Methode auf. Versuchen Sie wie folgt aus:

public ActionResult IndexJson() 
{ 
    IEnumerable<SalesData> person = 
     from e in SalesDataBuilder.GetCollection() 
     select new SalesData 
     { 
      RepName = e.RepName, 
      RepSales = e.RepSales 
     }; 
    return Json(person, JsonRequestBehavior.AllowGet); 
} 

Beachten Sie, dass ich JsonRequestBehavior.AllowGet an die Json Methode bin vorbei, die notwendig ist, wenn Sie diese Aktion werden den Aufruf des GET-Verb verwenden.

+0

zurückgegeben wird Vielen Dank Darin. – hncl