这里给出的答案都不适合我,我搜索了很多在动作方法之间传递数据的简单事情。所以,这是我的答案。
我有一个由 JS 在 NavBar 项目单击时调用的操作 POST 方法。此方法实例化一个报表实例,并将其传递给另一个操作方法使用。但在这里我返回一个字符串 clickedReport。
ViewBag 对我不起作用,将实例作为模型返回不起作用,它起作用的唯一方法是使用 TempData 或 Session,如下所示。
[HttpPost]
public ActionResult PopulateReport(int groupId, int itemId)
{
string clickedReport;
...
TempData["clickedReport"] = clickedReport;
Session["clickedReport"] = clickedReport;
return PartialView();
}
public ActionResult GridViewPartial()
{
// Now this other action method can get the clicked report assigned by the above action.
var tmpData = TempData["clickedReport"];
var sessionData = Session["clickedReport"];
// Runs the report instance and returns an object that holds a DataTable and other info to the grid that's in the calling partial view.
// Instantiate and populate GridConfig
GridConfig gridConfig = new GridConfig();
...
return PartialView("_GridViewPartial", gridConfig);
}
---- 这是 PopulateReport 操作的视图,即 PopulateReport.cshtml @Html.Action("GridViewPartial")
希望这可以帮助某人。