C# 如何使用dataset作为数据源保留xtraReport的参数
我有一个由强类型数据集提供的devExpress xtraReport。只要我将两个参数硬编码到操作中,它就会将数据加载到数据集中并显示在报告中。一旦我试图让它将主页上的值向下传递到部分,它就失败了。我的第一次尝试是通过ViewBag传递参数,但不起作用,因此切换到模型,仍然不能正常工作 主页面控制器C# 如何使用dataset作为数据源保留xtraReport的参数,c#,devexpress,asp.net-mvc-5,xtrareport,C#,Devexpress,Asp.net Mvc 5,Xtrareport,我有一个由强类型数据集提供的devExpress xtraReport。只要我将两个参数硬编码到操作中,它就会将数据加载到数据集中并显示在报告中。一旦我试图让它将主页上的值向下传递到部分,它就失败了。我的第一次尝试是通过ViewBag传递参数,但不起作用,因此切换到模型,仍然不能正常工作 主页面控制器 public ActionResult SubsequentVisitReport(int noteType = 1, int noteId = 9) { ViewBag.noteType =
public ActionResult SubsequentVisitReport(int noteType = 1, int noteId = 9)
{
ViewBag.noteType = noteType;
ViewBag.noteId = noteId;
ReportParameters reportParamters = new ReportParameters();
reportParamters.noteType = noteType;
reportParamters.noteId = noteId;
return View(reportParamters);
}
主页cshtml-添加到EditorFor中,以确保模型在那里(确实如此)。已尝试调用分部,包括和不包括“Model”
@model ReportParameters
@Html.EditorFor(m => m.noteId)
@Html.EditorFor(m => m.noteType)
@Html.HiddenFor(m => m.id)
@Html.HiddenFor(m => m.noteType)
@Html.HiddenFor(m => m.noteId)
@Html.Partial("_SubsequentVisitReport", Model)
控制器的部分-这没有收到来自模型的数据,我不明白为什么。模型不为空,所有值均为0(零)
局部视图
@model ReportParameters
@Html.HiddenFor(m => m.id)
@Html.HiddenFor(m => m.noteType)
@Html.HiddenFor(m => m.noteId)
@Html.DevExpress().DocumentViewer(settings =>
{
// The following settings are required for a Report Viewer.
settings.Name = "reportViewer1";
settings.Report = (rptSubsequentVisit)ViewData["Report"];
// Callback and export route values specify corresponding controllers and their actions.
// These settings are required as well.
settings.CallbackRouteValues = new { Controller = "Reports", Action = "_SubsequentVisitReport"};
settings.ExportRouteValues = new { Controller = "Reports", Action = "_SubsequentVisitReportExport" };
}).GetHtml()
数据需要通过部分保存以加载便笺供查看,也需要用于导出功能
我做错了什么,或者有没有其他更好的方法
谢谢,
Dave K.设置.CallbackRouteValues对象告诉DocumentViewer在哪里请求实际报告,它可以获取参数。不幸的是,它将是一个单独的请求,所以您不能发送您的模型,只能发送可以作为字符串传递的简单值。在中,他们对报告使用自定义模型,但必须根据每个操作中的原始值重新创建模型 如果将部分操作转换为整数参数:
public ActionResult _SubsequentVisitReport(int noteType, int noteId)
您应该能够在CallbackRouteValue的末尾添加这些参数:
settings.CallbackRouteValues = new { Controller = "Reports",
Action = "_SubsequentVisitReport",
noteType = model.noteType,
noteId = model.noteId};
你最终解决了这个问题吗?我也在做同样的事情。嘿,是的,我确实弄明白了,和Dev express来回几次。我忘了带在这里了。我会把你的答案记下来。
settings.CallbackRouteValues = new { Controller = "Reports",
Action = "_SubsequentVisitReport",
noteType = model.noteType,
noteId = model.noteId};