CSV 文字列を連結する JavaScript があります。この文字列は MVC アクションに渡され、ファイル ダイアログが開き、CSV ファイルを開くプログラムの種類を選択するようユーザーに求めます。
もともと、私は vb StringBuilder を使用して文字列を連結していましたが、今は js を使用する必要があります。何らかの理由で、以前と同じダイアログを取得できませんが、MVC アクションは変更されていません。これは、連結を処理し、文字列を mvc アクションに送信する JavaScript です。
<script type="text/javascript">
$(document).ready(function () {
$("#csv-export").click(function () {
var csvStr = "";
$("#myTable tbody tr:visible").each(function () { //for each visible row
$(this).children("td").each(function () { //for each rows tds
if (!$(this).has("a").length) { //if the td does not contain a link
csvStr += $(this).html() + ", "; //Append the td's html
}
});
csvStr = csvStr.substring(0, csvStr.length - 2);
csvStr += "\n";
});
$.get('@Url.Action("CSVExport")', { csv: csvStr }, function (ReturnedData) {alert("Success!")});
});
});
</script>
「成功!」を正しく受け取ります。復帰時に警告。
これは、「field1、field2、field3 \n field1、field2、field3」などの文字列を正しく受け取る MVC アクションです。フィールドの各セット間の改行に注意してください。
Public Function CSVExport(ByVal csv As String) As FileContentResult
If csv Is Nothing Then csv = "Sorry! There was an error creating this CSV file."
Return File(New System.Text.UTF8Encoding().GetBytes(csv), "text/csv", "Report123.csv")
End Function
しかし、残念ながら、ファイル ダイアログは表示されません。これは私の JavaScript/Action Return の問題ですか?