如何将方法从控制器返回的结果传递给视图

时间:2016-04-13 00:22:34

标签: c# asp.net-mvc linechart

我想在视图中使用控制器返回的方法(在我的例子中是光标), 为了从返回的数据中绘制图形。 我写了一段代码,但我还没有找到如何将数据传递给视图。

   //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();
  }

2 个答案:

答案 0 :(得分:0)

您必须强烈键入视图才能访问模型:

 @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();
 }

然后您可以使用Web视图页面的Model属性来获取模型。

请参阅此article

答案 1 :(得分:0)

您可以使用

控制器中的

ViewBag.MyData = cursor;

//在视图中:

@ViewBag.MyData

从控制器获取数据。

但最佳做法是使用强类型视图。