現在MVCプロジェクトを行っています。私はExcel形式でレポートを生成するボタンを持っています。ExcelファイルPOST経由でC#をダウンロードする(404.15クエリ文字列エラーを避けるため)
私は、他の多くのユーザーから聞いた以前の質問のカップルを通過しました。
クエリの長さを避けるために、POST経由でクエリ文字列を渡す方法はありますか?
これは、データベースのエラーログに表示されます。
NO USER 404.15見つかりません「/ GD15 /バッチ/ PaymentReport? に、checkIDs = 67284% 7C66283%7C66288% ..................
私は、Excelファイルを生成するためのJavaScriptを介してコントローラにどこ200 checkId年代の周りに渡す。 任意の助けを理解されたい。
#Javascriptファイルのコードスニペット。(ノックアウトを用いて)
self.onClickDownload = function() {
if (!self.actionsEnabled()){
return;
}
var selectedRows = self.paymentGrid.selectedRows();
var checkIds = [];
for (var i = 0; i < selectedRows.length; i++) {
checkIds[i] = selectedRows[i].Id;
}
self.isDownloading(true);
$.fileDownload(gControllerName + "/PaymentReport", {
data: { checkIds: checkIds.join("|") },
successCallback: self.onDownloadComplete,
failCallback: self.onDownloadFailed
});
}
コントローラ(コードスニペット)
public ActionResult PaymentReport(string checkIds)
{
Report report = new Report
{
ReportDataProvider =
"BKO.App.Reporting.ReportDataProviders.PaymentDataProvider",
ReportFileFullName = "Payment.rdlc"
};
string mimeType;
byte[] excelData = ReportGenerator.GetReportData(ReportFormatEnum.EXCEL,
report, "CheckNumberList=" + checkIds, out mimeType);
Response.AppendCookie(new System.Web.HttpCookie("fileDownload", "true"));
return File(excelData,"application/vnd.ms-excel","PaymentReport_"+".xls");
}
投稿を使用する場合は、リクエストの本文にデータを入れる方が簡単かもしれません。 – Stefan
@Stefan:上記のJSに関してはどうすればいいですか?私はここで何か間違っているのか分かりません。 POSTを使用するにはフォームタグが必要ですか? – rockingmeister