16

我想在用户单击提交按钮时显示加载动画。简单的 gif 就可以完成这项工作。这是我的代码:

@using (Html.BeginForm("SData","Crawl"))
{
    <p>
        Enter Starting URL:<input class="txt" type="text" id="sUrl" name="sUrl" title="Enter Starting URL"/>
    </p>

    <p>
        Enter Number of Threads:<input class="txt" type="text" id="Nbt" name="Nbt" title="Enter number of threads"/>
    </p>

    <p>
        <input class="button" id="submit" type="submit" value="Submit" />
   </p>   
}
4

2 回答 2

28

编辑

我错误地认为这个问题与 AJAX 助手有关。这是使用 HtmlHelper 的方法。

首先,在表单中添加一个 ID,以便您可以使用 JQuery 获取它:

@using (Html.BeginForm("SData", "Crawl", FormMethod.Post, new { id = "myform" }))
{
    // the form
}

接下来,添加一个 Javascript 事件处理程序来拦截表单提交并显示正在加载的 GIF。

$("#myform").submit(function(e) {
    $("#myLoadingElement").show();
});

(原始答案如下......)

使用AjaxOptions该类设置 a LoadingElementId,Ajax 助手将在等待服务器响应时显示该元素:

@using (Html.BeginForm("SData","Crawl", new AjaxOptions() {
    LoadingElementId="myLoadingElement"
}))
{
    // form
}

然后只需将您的 gif 放在您希望它显示的任何位置(最初隐藏它):

<div id="myLoadingElement" style="display: none;">
    <img src="loading.gif" alt="Loading..." />
</div>
于 2012-11-06T21:07:58.470 回答
0

您好,我刚刚在这里阅读了您的帖子,使用 Microsoft.AspNetCore.Mvc 在 .net core 2.1 中对我来说效果很好:

@using (Html.BeginForm("ActionName", "ControllerName", FormMethod.Post, new {id="UpdateForm"})) {@Html.AntiForgeryToken() <div>your inputs here...</div> }

然后是 HTML 脚本:

$("#UpdateForm").submit(function(e){$("#your loader gif here..")}

如果您有问题,您可能想要调试您的 Action Method 并查看它是否在语句内中断...... @Dr Freeman:您可以重定向到任何视图,如下所示:

return RedirectToAction("ActionName", new {@id=id});

希望这有帮助

于 2018-12-28T10:31:07.000 回答