2016-04-13 7 views
0

Ich möchte die Ergebnisse von einer Methode (Cursor in meinem Fall) aus dem Controller in meiner Ansicht, , um ein Diagramm aus der Daten zurückgegeben. Ich habe ein Stück Code geschrieben, aber ich habe nicht gefunden, wie man Daten an die Ansicht weitergibt.Wie kann ich die Ergebnisse von einer Methode aus dem Controller an die Sicht übergeben

//controller 
    [HttpPost] 
    public async System.Threading.Tasks.Task<ActionResult> drawgraph(Inputmodel m) 
    { 
     List<Client> client = new List<Client>(); 
     var collection = db.GetCollection<Client>("Client"); 
     var builder = Builders<Client>.Filter; 
     var beginDate = Convert.ToDateTime(m.date_begin).Date; 
     var endDate = Convert.ToDateTime(m.date_end).Date; 
     var filter = builder.Gte("date", beginDate) & builder.Lt("date", endDate.AddDays(1)) & builder.Eq("field2", m.taux); 
     var cursor = await collection.DistinctAsync<double>("field2",filter);  
     return View(cursor); 


    } 

//view 
@{ 
    var myChart = new Chart(width:600,height: 400) 
       .AddTitle("graphique") 
       .AddSeries(chartType: "Line") 
       .DataBindTable(dataSource: cursor, xField: "date", yField:"field2") //here I want to use the returnet result by drawgraph in the controller 
       .Write(); 
    } 
+0

Sie müssen ein Modell erstellen, die Daten an es übergeben und dann das Modell in Ihrer Ansicht verwenden. – Kami

Antwort

0

Sie müssen Ihrer Ansicht nach stark geben Sie das Modell zuzugreifen:

@model YourModelTypeHere @*type of the cursor variable*@ 
//view 
@{ 
    var myChart = new Chart(width:600,height: 400) 
         .AddTitle("graphique") 
         .AddSeries(chartType: "Line") 
         .DataBindTable(dataSource: Model, xField: "date", yField:"field2") //here I want to use the returnet result by drawgraph in the controller 
         .Write(); 
} 

Und dann können Sie Modell Eigentum der Webansicht Webseite Ihr Modell zu erhalten.

Bitte beachten Sie diese article.

0

könnten Sie

verwenden

im Controller

ViewBag.MyData = cursor; 

// in der Ansicht:

@ViewBag.MyData 

Um Daten vom Controller acceess.

Aber die beste Praxis ist stark typisierte Ansichten verwenden.