我在 MVC 3 应用程序中使用 Telerik Reporting 时遇到 css 冲突/冲突问题。标准 Site.css 及其报表查看器存在 CSS 问题是一个已知问题。但是,我们的应用程序使用 Twitter Bootstrap 作为 UI css,我找不到任何冲突的区域。由于我找不到冲突的 css(我什至不确定是否能够在不破坏应用程序中其余 css 的情况下修复它),我的第二个想法是加载没有 css 的部分视图,这理论上应该可以毫无问题地工作。但是,如果不从母版页继承 CSS,我就无法加载部分视图。该站点正在使用 Razor 视图引擎,报告查看器的部分视图正在使用 Web 表单视图引擎,因为 Telerik 尚未更新其报告(这是 2013 年第一季度)。有什么方法可以强制加载此视图而不从母版页(Layout.cshtml)继承任何 css?我的代码如下:
主页
@{
ViewBag.Title = "Reports";
}
<h2>Reporting</h2>
@Html.Partial("_UnderContructionPartial")
@{
Html.RenderPartial("ReportViewer");
}
使用报告查看器查看
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
<%@ Register Assembly="Telerik.ReportViewer.WebForms, Version=7.0.13.220, Culture=neutral, PublicKeyToken=a9d7983dfcc261be" Namespace="Telerik.ReportViewer.WebForms" TagPrefix="telerik" %>
<%@ Register Assembly="Telerik.Reporting, Version=7.0.13.220, Culture=neutral, PublicKeyToken=a9d7983dfcc261be" Namespace="Telerik.Reporting" TagPrefix="telerik" %>
<!DOCTYPE html>
<html>
<head runat="server">
<title>Report</title>
</head>
<body>
<script runat="server">
public override void VerifyRenderingInServerForm(Control control)
{
// to avoid the server form (<form runat="server"> requirement
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
var instanceReportSource = new Telerik.Reporting.InstanceReportSource();
//instanceReportSource.Parameters.Add(new Telerik.Reporting.Parameter("UserName", ViewData["UserName"].ToString()));
instanceReportSource.ReportDocument = new program1.Web.Reports.TestReport();
ReportViewer.ReportSource = instanceReportSource;
ReportViewer.ViewMode = ViewMode.PrintPreview;
}
</script>
<form id="main" method="post" action="">
<telerik:ReportViewer ID="ReportViewer" Width="100%" Height="800px" runat="server">
</telerik:ReportViewer>
</form>
</body>
</html>
控制器
public ActionResult ReportViewer()
{
return PartialView("ReportViewer");
}
这是报表查看器的样子:
这就是它“应该”的样子: