私はビジュアルスタジオに組み込まれたパワーBIを使用してアプリケーションを構築しています。私はユーザ名と役割をレポートに追加しましたコントローラのアクションは、埋め込みたい実際のレポートのユーザ名と役割に対応しています。私は、index.cshtmlのテキストボックスから変数としてユーザー名をReportアクションに渡したいと思います。この値がハードコードされているとレポートが読み込まれて埋め込まれますが、変数として渡すことはできません!ここでMVC Power BI Embeddedを使用して変数を渡すにはどうすればよいですか?
はのActionResultはコントローラである - 私は私の取得を入れてきました。ここで
public string username { get; set; }
を設定しますが、私が使用したHTMLですモデルで
public async Task<ActionResult> Report(string reportId)
{
//This is where I'm trying to get the variable from the textbox
username = Request["centreID"].ToString();
using (var client = this.CreatePowerBIClient())
{
var reportsResponse = await client.Reports.GetReportsAsync(this.workspaceCollection, this.workspaceId);
var report = reportsResponse.Value.FirstOrDefault(r => r.Id == reportId);
IEnumerable<string> roles = new List<string>() { "xxxxxxxx" };
// I can hardcode the username here, and it works, but can't pass in a variable from the html like above
//string username = "xxxxxx";
//username = this.username;
var embedToken = PowerBIToken.CreateReportEmbedToken(this.workspaceCollection, this.workspaceId, report.Id, username, roles);
var viewModel = new ReportViewModel
{
Report = report,
AccessToken = embedToken.Generate(this.accessKey)
};
return View(viewModel);
}
}
です。私は前にコントローラでvoidメソッドでこれをテストしたのだが、
@using (Html.BeginForm("Report", "Dashboard"))
{
@Html.Label("Enter Centre ID")
@Html.TextBox("centreID")
<input type="submit" value="submit" />
}
</span>
</a>
この行のブレークポイント 'username = Request [" centreID "]。ToString();' ...値を取得しているかどうか? – Hackerman
いいえ、そうではありません...コントローラのvoidメソッドを指すhtml.beginformアクションを実行する前に、ブレークポイントを設定して、値を渡していました。これは非同期なのですか? –
そして 'reportId'の値は? – Hackerman