4

我正在尝试修改此代码: http: //www.codeproject.com/Articles/260470/PDF-reporting-using-ASP-NET-MVC3 以获取 ViewBag 数据以在 PDF 中呈现视图。

基本上,我需要将我的 ViewBag 的新上下文传递给 Html.RenderPartial,现在的代码是:

Html.RenderPartial(viewName, model);

我正在尝试将其更改为:

Html.RenderPartial(viewName, model, new ViewDataDictionary(ViewBag));

我没有收到任何错误,但字典保持为空。

BR

4

2 回答 2

13

尝试传入ViewData属性而不是ViewBag.

Html.RenderPartial(viewName, model, new ViewDataDictionary(ViewData));

ViewBag属性是一个动态对象,因此ViewDataDictionary您调用的构造函数是带有object. 你最好使用一个已经填充的ViewDataDictionary. ViewBag 和 ViewData 中的数据是一样的。

于 2013-06-25T15:27:30.567 回答
0

您可以使用:

@Html.Partial(viewName)

在主视图的部分视图包中将可以访问。

好的。如果您需要将 html 从部分视图渲染为 pdf,您可以使用以下代码:

@{
    var htmlString = Html.Partial(viewName);    
    var pdfData = PdfComposerClass.CreatePdfStaticMethod(htmlString);   
}
于 2013-06-25T15:13:27.257 回答