Как передать файл и строку через ajax-вызов в контроллер? - PullRequest
0 голосов
/ 09 октября 2019

Я пытаюсь передать файл и строку в контроллер. Когда нажата кнопка «Отправить», выбранный файл и строка отправляются в контроллер, и автоматическое связывание моделей работает для файла, а не для строки. Это то, что я делал до сих пор. Спасибо!

<div class="container">
        <form method="post" action="" enctype="multipart/form-data" id="myform">
            <div>
                <input type="file" id="file" name="someFile" />
                <button id="but_upload"> submit</button>
           </div>
        </form>
 </div>

 <script>

    $(document).ready(function () {

        $("#but_upload").click(function () {

            var myFile = $('#file').prop('files');
            var data = {
                someFile:myFile,
                myString: "Hello World"
            };
            $.ajax({
                dataType: 'html',

                type: 'POST',

                url: '/Home/PassFileAndData',

                data: data,

                success: function (data) {
                    alert("Success");
                },

                error: function (xhr, ajaxOptions, thrownError) {
                    alert("failure");
                }
            });
        });
    });
</script>
    public ActionResult PassFileAndData(HttpPostedFileBase someFile , string myString)
    {
        return View();
    }

Я также нашел этот пост: Несколько параметров на jquery ajax, вызов asp.net и вместо вышеупомянутого кода javascript я попробовал это. но опять-таки только файл передается в контроллер. Любая помощь, пожалуйста?

<script>

    $(document).ready(function () {

        $("#but_upload").click(function () {


            var myFile = $('#file').prop('files');
            var formData = new FormData();
            formData.append("someFile", myFile);
            formData.append("myString","HelloWorld");
            $.ajax({

                //contentType: "application/json; charset=utf-8", //if i want automatic model binding vgale ta sxolia
                //enctype: 'multipart/form-data',
                processData: false,
                contentType: false,
                //cache: false,
                dataType: 'html',

                type: 'POST',

                url: '/Home/PassFileAndData',

                data: formData,

                success: function (data) {
                    alert("Success passing List");
                },

                error: function (xhr, ajaxOptions, thrownError) {
                    alert("failure");
                }
            });
        });
    });


</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...