【问题标题】:ASP.NET MVC 3 message while file is uploading with jQuery, jQueryUI or Ajax使用 jQuery、jQueryUI 或 Ajax 上传文件时的 ASP.NET MVC 3 消息
【发布时间】:2012-11-21 23:07:02
【问题描述】:

当我点击提交按钮“input type="submit" id="submit" value="Save"”。 它开始上传我从硬盘中选择的文件。 不过,这一切都无关紧要,因为我制作了一个带有“上传”文本的 div 并且该 div 的样式是可见性:隐藏; 现在我想要的是,当我单击提交按钮(文件开始上传的时间)时,div 变得可见,我尝试了几件事,包括 “ How can I display a status message while a file is uploading? ” 但没有运气,可能只有我一个人,但我对 jQuery 还很陌生,所以我希望能得到一些帮助。

谢谢

编辑:我尝试了以下所有代码,但没有任何效果,我也尝试过

$('#editform').submit(function() {
        $('#loadingdiv').show();
        return true;
    });

(editform 是我正在使用的表单 ID) 但没有运气,有人知道为什么会这样吗?

下面是我的整个编辑页面

@using (Html.BeginForm("Edit", "Admin",FormMethod.Post, new { enctype = multipart/form-data", id = "editform" })){
@Html.EditorForModel()
<div class="editor-field">
    @if (Model.ImageData == null)
    {
        @:None
    }
    else
    {
        <img width="150" height="150"
             src="@Url.Action("GetImage", "Product", new { Model.ProductID })" alt="bic boii" />
    }
    <div>
        Upload nieuw image: &nbsp; &nbsp; &nbsp;
        <input type="file" name="Image" />
    </div>
</div>

<div>
    Upload nieuw document:
    <input type="file" name="Pdf" />
</div>

<script type="text/javascript">
    $('#editform').submit(function() {
        $('#loadingdiv').show();
        return true;
    });

</script>
<input type="submit" id="submit" value="Opslaan" />
@Html.ActionLink("Ga terug", "Index")
<div id="loadingdiv">
    Bezig met uploaden.
</div>}

嗯,在我的表单上设置断点后,它只是完全跳过了我的脚本,我不确定那是什么

【问题讨论】:

  • 将你的脚本放在表单之外,确保在执行任何将你的js代码包含在$("document").ready(function () { //你的js代码在这里})之前加载元素;
  • 还要检查您的表单是否在源代码中具有预期的 ID。
  • 顺便说一句,您还应该发布适用于您页面的 css。你可以试试 display:none;而不是可见性:隐藏;为您的 div
  • 感谢 jbl ^^ display:none;工作!哈哈,我从来没想过,我是愚蠢的!

标签: jquery asp.net ajax asp.net-mvc-3


【解决方案1】:
$("#submit").click(function () { $("#yourContainerId").show(); });

这说:当点击提交按钮时,启动一个函数,您可以在其中选择包含消息的 div(我在这里调用了它的 id yourContainerId)并显示它。

如果它不起作用,它应该返回一个错误,这可能有助于我们了解正在发生的事情。如果您在问题上发布您的客户代码,也可能会更容易。也许您的代码中存在一些错误,导致执行无法到达您尝试显示消息的代码。

【讨论】:

  • 我发布了整个cshtml页面
【解决方案2】:

您可以使用 Ajax 上传文件吗?然后你可以在ajax调用之前调用div的显示,完成后隐藏div。

$.ajax({

    type: "POST",
    url: "/SomeController/SomeAction",
    data: $('form').serialize(),
    timeout: 3000,
    async: false,
    beforeSend: function() {
        $("loading").show();

    },

    complete: function() {
        $("loading").hide();

    },        
    cache: false,
    success: function(result) {

         return result;

    },
    error: function(error) {
        $("laoding").hide();
        alert("Some problems have occured. Please try again later: " + error);

    }

});

【讨论】:

  • 我不知道我是不是很笨,但我不知道如何让 Ajax 上传我的文件,现在我将它作为二进制文件保存到数据库中(以及保存mimetype),但我只想在单击按钮时显示一条消息,实际上与文件上传几乎没有关系,但是当您单击按钮时,您的页面开始加载,这就是我想要消息的时候显示。
  • 恐怕 $("loading") 不会返回任何东西。 $("#loading") 或 $(".loading") 可能,假设 id 或 class="loading"
猜你喜欢
  • 1970-01-01
  • 2011-01-26
  • 2013-01-28
  • 2012-11-27
  • 1970-01-01
  • 2017-07-10
  • 2021-12-10
相关资源
最近更新 更多