我目前正在测试blazor服务器端框架。 我想在“剃刀组件”页面中使用FastReport。 我的问题是FastReport RenderSync / Async方法向我返回了一个HtmlString。我试图将其强制转换为MarkupString,然后将其插入html代码,但报告未显示。 我认为问题在于,blazor使用了“ shadowDOM”并更改了HTML标记。 有时我看到报告呈现了一秒钟。 有没有可能防止blazor触摸此代码? 还是有其他解决方案,例如每个 并按照javascript注入它。
感谢帮助
@page "/"
@inherits IndexBase
<div class="container">
@((MarkupString)report.RenderSync().Value)
</div>
public IndexBase() {
_reportFn = @"C:\tmp\Report\report.frx";
report = new WebReport();
report.Report.Load(_reportFn);
var dataSet = new DataSet();
dataSet.ReadXml(@"C:\tmp\Report\nwind.xml");
report.Report.RegisterData(dataSet, "NorthWind");
}
答案 0 :(得分:1)
我认为方向错误。 问题不是影子dom和blazor框架的操纵。 问题是注入的HtmlString中的javascript没有执行。 现在,我从HtmlString中提取脚本标签,并使用javascript注入脚本标签。 ;-)