0

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 の問題ですか?

4

1 に答える 1