RenderPartial和ViewBag

时间:2013-06-25 15:06:03

标签: asp.net-mvc html-helper viewbag

我正在尝试修改此代码: 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

2 个答案:

答案 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);   
}