无法从控制器中的 HTTP 方法获取回调

扬科·德·弗里斯

我正忙于为上传文件创建等待指示器,但似乎我无法从控制器中触发的 POST 方法接收任何回调。我一直在寻找半天并尝试了很多不同的解决方案,但它们似乎都不适用于我的情况。

我有一个模型:

public class FileUploadModel
{
    [Required(ErrorMessage = "Select file(s) to upload.")]
    [Display(Name = "Browse")]
    public HttpPostedFileBase[] Files { get; set; }

    [Display(Name = "File Type")]
    public EFileType FileType{ get; set; }
}

我有一个表格:

@using (Html.BeginForm("FileExchange", "General", FormMethod.Post, new { enctype = "multipart/form-data", id = "uploadform" }))

控制器中的方法:

[HttpPost]
public async Task<ActionResult> FileExchange(FileUploadModel model)
{
    await UploadFiles(model);
    return View("FileExchange");
}

我在 javascript/ajax 中尝试过类似以下的内容:

<script>
    $(document).ready(function () {
        $("#preloader").hide(); //the wait indicator
        $('#uploadform').on('submit', function (e) {
            e.preventDefault();

            var formdata = new FormData($('#uploadform').get(0));

            $("#preloader").show();

            var url = '@Url.Content("~/General/FileExchange/")'
            //var dataModel = $(this).serialize();
            $.ajax({
                url: url,
                type: "POST",
                data: formdata,
                processData: false,
                contentType: false,
                //dataType: "json",
                success: function (resp) {
                    $("#preloader").hide();
                },
                error: function (resp) {
                    $("#preloader").hide();
                }
            });
        });
    })
</script>

等待指示器正在工作,但该方法没有被击中。

当我将模型添加到“提交”功能时:

$('#uploadform').on('submit', model, function (e)

POST 方法被命中但等待指示器停止工作。几乎似乎“提交”功能不再受到影响。

有关如何解决此问题的任何想法?

扬科·德·弗里斯

我搜索了更长的时间,我找到了解决我的问题的方法:

<script type="text/javascript">
    $(document).ready(function () {
        $("#preloader").hide();
    })

    $('#uploadform').on('submit', function () {

        $("#preloader").show();

        $('#uploadform').ajaxForm({
            url: '@Url.Content("~/General/FileExchange")',
            dataType: 'json',
            success: function () {
                $("#preloader").hide();
            }
        })
    })
</script>

通过这种方式,我可以在“提交”被触发时显示指示器,并在给定 URL 中的 POST 方法成功执行时隐藏指示器。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

IOS/Objective-C:从异步方法中获取回调

来自分类Dev

在 React 中获取回调

来自分类Dev

从 Codeigniter 控制器中的 angular $http 获取参数

来自分类Dev

无法在控制器中获取ID

来自分类Dev

无法在控制器中获取@EnvironmentObject

来自分类Dev

界面无法获取回调Android

来自分类Dev

如何从回调中获取回报

来自分类Dev

在获取回调中返回空的主干

来自分类Dev

从WebView中的付款网关获取回调

来自分类Dev

从Matlab中的单选按钮获取回调

来自分类Dev

如何在fancyBox中获取回调

来自分类Dev

路由到从数据库中获取并在 http 响应中返回结果的控制器

来自分类Dev

如何在控制器中获取HTTP请求和查询字符串PARAMS

来自分类Dev

从Web API控制器获取angular $ http中的自定义标头

来自分类Dev

如何在Angularjs $ http.get()。success()中回调控制器方法

来自分类Dev

无法从服务获取控制器中的数据

来自分类Dev

我无法从ExtJS的控制器中获取组件

来自分类Dev

为什么我无法在控制器中获取参数?

来自分类Dev

无法访问控制器中的获取变量

来自分类Dev

无法从复选框中的控制器获取标签

来自分类Dev

无法在父控制器中获取 Partialview 模型

来自分类Dev

Sails.JS 如何在控制器中获取 HTTP GET 方法以正确处理 URL 参数

来自分类Dev

无法路由到控制器中的方法

来自分类Dev

无法在控制器中包含和使用组件的方法

来自分类Dev

无法从控制器中的ApplicationHelper模块调用方法

来自分类Dev

无法路由到控制器中的方法

来自分类Dev

会话方法无法在控制器中调用2次

来自分类Dev

LARAVAL - 无法在控制器方法中调用函数

来自分类Dev

无法连接到控制器中的方法

Related 相关文章

热门标签

归档