如何从控制器传递对象并在ASP.Net Core中的视图上使用它

时间:2019-10-15 09:35:55

标签: asp.net-core asp.net-core-mvc

我想知道如何将对象从控制器传递到视图 例如,在我的控制器中,我声明了一个报表对象的实例:

XtraReport report = new XtraReport ()

我想将该报表实例绑定到文档查看器,例如

@Html.DevExpress().WebDocumentViewer("WebDocumentViewer").Height("1000px").Bind(report).

我该如何在控制器中进行此操作,我已经通过在视图页面中声明报告对象的实例(报告)实现了此目的,但是我没有任何问题,但是我想知道是否有可能在我的实例中声明该实例控制器并将其传递给视图

2 个答案:

答案 0 :(得分:1)

您可以使用ViewBag从控制器传递其他(非模型)数据以查看:

在控制器中(采取行动方法):

var report = new XtraReport();
//...populate report as needed
ViewBag.MyExtraReport = report;
return View(...);

视图中:

@{
    XtraReport report = (XtraReport)ViewBag.MyExtraReport;
}

现在,您可以在视图服务器代码中使用report变量。

@Html.DevExpress().WebDocumentViewer("WebDocumentViewer").Height("1000px").Bind(report).

答案 1 :(得分:1)

使用MVC视图模型(除非确实需要,否则请不要使用ViewBag

控制器

var report = new XtraReport();
// report is the view model
return View(report);

查看

@model XtraReport; // put this at the top of the view

// Model is the instance of XtraReport from the controller
@Html.DevExpress().WebDocumentViewer("WebDocumentViewer").Height("1000px").Bind(Model).