是的,可以将动态查询参数传递给ASP.NET MVC中的嵌入式Power BI报表。以下是实现这一功能的基础概念和相关步骤:
public ActionResult EmbedReport(string param1, string param2)
{
// 构建嵌入URL,包含动态参数
var embedUrl = $"https://app.powerbi.com/reportEmbed?reportId=your-report-id¶m1={param1}¶m2={param2}";
// 获取访问令牌(假设已通过某种方式获取)
var accessToken = GetAccessToken();
// 传递嵌入URL和访问令牌到视图
ViewBag.EmbedUrl = embedUrl;
ViewBag.AccessToken = accessToken;
return View();
}
<!DOCTYPE html>
<html>
<head>
<title>Embedded Power BI Report</title>
<script src="https://microsoft.github.io/PowerBI-JavaScript/demo/node_modules/powerbi-client/dist/powerbi.min.js"></script>
</head>
<body>
<div id="reportContainer" style="width: 100%; height: 600px;"></div>
<script>
var embedConfig = {
type: 'report',
tokenType: models.TokenType.Embed,
accessToken: '@ViewBag.AccessToken',
embedUrl: '@ViewBag.EmbedUrl',
settings: {
panes: {
filters: {
expanded: true,
visible: true
}
}
}
};
var reportContainer = document.getElementById('reportContainer');
var powerbi = new window.powerbi.service.Service(window.powerbi.factories.hpmFactory, window.powerbi.factories.wpmpFactory, window.powerbi.factories.routerFactory);
var report = powerbi.embed(reportContainer, embedConfig);
</script>
</body>
</html>
HttpUtility.UrlEncode
对参数进行编码。通过上述步骤和代码示例,可以在ASP.NET MVC应用中成功实现动态查询参数传递给嵌入式Power BI报表的功能。
领取专属 10元无门槛券
手把手带您无忧上云