Отправка параметров в функцию HTTPPOST в действии формы для страницы перетаскивания - MVC Razor C # - PullRequest
0 голосов
/ 02 апреля 2019

Мне нужно создать страницу перетаскивания. Я в настоящее время использую плагин "Dropzone". В моем клиенте у меня есть следующий HTML:

Здесь я выбираю значение из входа:

<div class="form-group">
    <label for="selectMarca" class="col-sm-3">Selecione o tipo de Comerciantes a Importar</label>
    <select class="form-control" id="selector">
        <option value=0>Value0</option>
        <option value=1>Value1</option>
        <option value=2>Value2</option>
        <option value=3>Value3</option>
    </select>
</div>

Вот где я вызываю функцию SaveUploadedFile:

<form class="dropzone" id="dropzoneForm" action="/SettingsMerchants/SaveUploadedFile/0" data-plugin="dropzone">
    <div class="dz-message">
        <h3 class="m-h-lg">Press here or drag some file to import</h3>
     </div>
 </form>

И у меня есть триггер Jquery для изменения значения «действия»:

<script>
    $("#selector").on("change", function (e) {
        //e.preventDefault();
        $('#dropzoneForm').attr('action', "/SettingsMerchants/SaveUploadedFile/" + $("#selector").val());
    });
</script>

Моя проблема в том, что, когда я удаляю файл, всегда вызывает мою функцию с '0'. Но когда я изменяю значение в select / option, оно меняется, если я иду в консоль браузера и набираю:

$('#dropzoneForm').attr('action')

Я вижу, что значение изменилось.

enter image description here

enter image description here

1 Ответ

0 голосов
/ 03 апреля 2019

Исходя из этого ответа:

https://github.com/enyo/dropzone/wiki/Set-URL-dynamically

Я предполагаю, что Dropzone JS принимает начальное значение в атрибуте action и сохраняет его на стороне JS, а затем не извлекает его после инициализации, поэтому вам нужно установить свойство url непосредственно на объект Dropzone, как показано в примере выше.

...