【问题标题】:Sending parameters to HTTPPOST function in form action for a drag and drop page - MVC Razor C#在拖放页面的表单操作中向 HTTPPOST 函数发送参数 - MVC Razor C#
【发布时间】:2019-04-02 17:09:20
【问题描述】:

我需要创建一个拖放页面。我目前正在使用“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' 调用我的函数。 但是当我更改选择/选项的值时,如果我转到浏览器控制台并输入:

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

我看到值改变了。

【问题讨论】:

  • 将您的默认操作属性更改为类似:action="/SettingsMerchants/SaveUploadedFile/666" 并查看控制器上的值是否为 666,或者它是否仍然为 0。如果它仍然0,那么我认为这可能与您的控制器中的路由或参数标识符有关,而不是属性的jQuery设置。
  • 它确实假设为 666。如果我什至拿 id 他抱怨它为空。问题是他看起来总是看开始属性而不是改变的值。

标签: c# html razor model-view-controller dropzone.js


【解决方案1】:

根据这个答案:

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

我假设 Dropzone JS 在 action 属性中获取初始值并将其存储在 JS 端,然后在初始化后不从中提取,这就是为什么你需要设置 url 属性直接在 Dropzone 对象上,如上例所示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-09
    • 1970-01-01
    • 1970-01-01
    • 2020-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多