我正在尝试修改此代码: http://www.codeproject.com/Articles/260470/PDF-reporting-using-ASP-NET-MVC3 使其获取ViewBag数据以呈现PDF中的视图。
基本上,我需要使用新的Context我的ViewBag传递给Html.RenderPartial,代码现在是:
Html.RenderPartial(viewName, model);
我正在尝试将其更改为:
Html.RenderPartial(viewName, model, new ViewDataDictionary(ViewBag));
我没有收到任何错误,但字典保持为空。
BR
答案 0 :(得分:11)
尝试传入ViewData
属性而不是ViewBag
。
Html.RenderPartial(viewName, model, new ViewDataDictionary(ViewData));
ViewBag
属性是一个动态对象,因此您调用的ViewDataDictionary
构造函数是一个object
的构造函数。你最好使用一个已经填充ViewDataDictionary
的人。 ViewBag和ViewData中的数据是相同的。
答案 1 :(得分:0)
您可以使用:
@Html.Partial(viewName)
在主视图中的部分视图中可以访问。
确定。如果您需要从局部视图渲染html到pdf,您可以使用以下代码:
@{
var htmlString = Html.Partial(viewName);
var pdfData = PdfComposerClass.CreatePdfStaticMethod(htmlString);
}