提问者:小点点

ASP.NET Core 3.0:加载GIF


我正在尝试插入一个加载GIF到我的项目。 我正在使用ASP.NET Core3.0和Razor Pages,我知道我必须使用一点Javascript或Ajax来实现这一点。 我对所有这些都是新手,所以我并不真正理解如何实现这一点,但我已经尝试过了。 当我加载页面时,GIF立即就在那里了,但问题是我只希望它在我单击提交按钮时显示出来。

这是我的upload.cshtml代码:

@page
@model CustomerPageTest.Pages.Assessment.UploadModel
@{
    ViewData["Title"] = "Upload";
}

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="../Scripts/jquery-1.12.4.js"></script>
<script src="../Scripts/jquery-ui.js"></script>
<script>
    $(document).ready(function () {
        $('.loadingImage').hide();
        $("#buttonSubmit").click(function (event) {
            $('.loadingImage').show();
        });
    });
</script>

<div class="col-md-offset-2 justify-content-center">
    <h1 style="color:yellowgreen">3) Import RVTools Spreadsheet (.xls or .xlsx)</h1>
</div>
<br />
<br />

<div class="col-md-offset-3">
    <form enctype="multipart/form-data" method="post">
        <dl>
            <dd>
                <input asp-for="@Model.FormFile" type="file" class="text-light">
                <span asp-validation-for="@Model.FormFile"></span>

                <input asp-for="@Model.CustomerId" type="hidden" />
                <span asp-validation-for="@Model.CustomerId"></span>

                <input asp-for="@Model.AssessmentId" type="hidden" />
                <span asp-validation-for="@Model.AssessmentId"></span>
            </dd>
            <dd>
                <img id="loadingImage" src="~/css/Images/ajax-loader.gif" alt="Loading ..." style="display: none;" />
            </dd>
        </dl>
        <dl>
            <dd>
                <button id="buttonSubmit" asp-page-handler="Upload" class="btn btn-dark" type="submit">Upload File</button>
            </dd>
        </dl>
    </form>
</div>

当我运行程序而不点击Upload File时,这就是我得到的:

我怎样才能使这个GIF只出现在我点击上传文件? 当我点击‘上传文件’时,程序转到OnPost()函数,因为它必须用给定的文件运行一个大的算法,我想在程序运行时显示GIF。


共1个答案

匿名用户

jquery脚本以loadingImage类为目标,但元素将其作为ID。 请改用$('#LoadingImage')。