首页 > 解决方案 > 等待asp.net返回新视图时如何显示加载消息

问题描述

我在互联网上搜索了很多,我正在寻找一种在 asp.net 从一个页面移动到另一个页面时显示加载消息的方法。我已经尝试了 JavaScript 的加载方法,但它不适用于从一个页面移动到另一个页面,所以当单击搜索按钮时我该如何执行此操作。

@using (Html.BeginForm("SearchResult", "Home", FormMethod.Get))
{
    <section class="search-sec">
        <div class="container-fluid">
            <form>
                <div class="row">
                    <div class="col-lg-12">
                        <div class="row">

                            <div class="col-lg-4 col-md-3 col-sm-12 p-0">
                                <input type="text" name="searchTitle" class="form-control search-slt" placeholder="Job Title, Skills, Company!">
                            </div>
                            <div class="col-lg-4 col-md-3 col-sm-12 p-0">
                                <input type="text" name="searchLocation" class="form-control search-slt" placeholder="Location">
                            </div>

                            <div class="col-lg-4 col-md-3 col-sm-12 p-0">
                                <button type="submit" value="Create" class="btn btn-danger wrn-btn">Search</button>
                            </div>

                        </div>
                    </div>
                </div>
            </form>
        </div>
    </section>

}

标签: asp.net-mvc

解决方案


如果您不使用 ajax,那么您可以使用加载消息加载新页面,并在加载完成后将其删除。我在我的一个项目中使用了这个(https://ihatetomatoes.net/create-css3-spinning-preloader/)。基本上,您激活或停用将类添加到 html 正文。

在我想在其他任何东西之前展示它的视图中,我放了这个:

<script>
     $('body').removeClass('loaded');
</script>

一旦一切都加载完毕:

<script>

    //...other stuff

    $(document).ready(function () {
        setTimeout(function () {
            $('body').addClass('loaded');
        }, 500);

    });

</script>

但是在到达页面之前您仍然需要等待,您应该在离开第一页之前捕获搜索点击并显示加载器。

无论如何,我同意 Jerdine 和敢机,您将拥有更多的控制权,使用 ajax 加载搜索结果并将它们显示在同一页面中。也许不可能,所以我希望解决方法对您有用


推荐阅读