通过Html.BeginForm提交激活加载动画

时间:2012-11-06 21:03:48

标签: javascript ajax asp.net-mvc asp.net-mvc-4 razor

我想在用户点击提交按钮时显示加载动画。简单的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>   
}

2 个答案:

答案 0 :(得分:22)

修改

我错误地认为这个问题与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类设置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>

答案 1 :(得分: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并查看它是否在语句内中断。 @Freeman博士:您可以重定向到任何视图,如下所示:

  

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

希望获得帮助