Невозможно отправить значение файла на контроллер в asp. net mvc с js - PullRequest
0 голосов
/ 24 января 2020

У меня есть небольшая проблема здесь. Я не могу отправить содержимое файла ввода в контроллер через js, я использую плагин 'cropp ie' для масштабирования размера изображения перед отправкой. Прежде чем использовать этот плагин js, я мог отправить файл и сохранить его, но не больше, но теперь я получаю все значения в моей модели, но не файл. Я не очень хорошо разбираюсь с js, пожалуйста, помогите мне.

Здесь вводите и отправляйте коды

 <div class="col-md-10">
      <input type="file" name="ImageUpload" id="ImageUpload" value="Select an image" />
      <div id="upload"></div>
      <input type="hidden" id="productImage" name="productImage">
 </div>

<div class="form-group">
      <div class="col-md-offset-2 col-md-10">
            <a href="#" class="upload-form btn btn-pry">Add Product</a>
      </div>
</div>

Вот код плагина cropp ie

<script type="text/javascript">
    $(document).ready(function () {
        var $uploadCrop;

        function readFile(input) {
            $uploadCrop = $('#upload').croppie({
                viewport: {
                    width: 270,
                    height: 350,
                    type: 'square'
                },
                boundary: {
                    width: 310,
                    height: 400
                }
            });

            if (input.files && input.files[0]) {
                var reader = new FileReader();
                reader.onload = function (e) {
                    $uploadCrop.croppie('bind', {
                        url: e.target.result
                    });
                    $('.upload').addClass('ready');
                }
                reader.readAsDataURL(input.files[0]);
            }
        }

        $('#ImageUpload').on('change', function () { readFile(this); });
        $('.upload-form').on('click', function () {
            $uploadCrop.croppie('result', {
                type: 'canvas',
                size: 'original'
            }).then(function (resp) {
                $('#productImage').val(resp);
                $('.form').submit();
            });
        });

    });
</script>

У меня есть это сообщение в моем контроллере

 public ActionResult AddProduct(ProductVM model, HttpPostedFileBase file)
 {
     //.... some codes here
 }

1 Ответ

0 голосов
/ 13 февраля 2020

если вы используете submit, то вам нужно поместить из тела в ваш контроллер ..

public ActionResult AddProduct([FromBody]ProductVM model, HttpPostedFileBase file)
 {
     //.... some codes here
 }

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