載入網頁或送出表單時,網頁顯示載入中(讀取中)畫面
有兩種作法一是利用ASP.NET MVC的AjaxOptions類別來做設定,二是使用jQuery.ajax()事件。
一、使用AjaxOptions類別
Controller為
using System.Web.Mvc;
namespace WebApplication1.Controllers
{
public class HomeController : Controller
{
[HttpGet]
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(string myName)
{
return View();
}
}
}
View為
@{
ViewBag.Title = "Home Page";
AjaxOptions AjaxOptions = new AjaxOptions()
{
HttpMethod = "post",
Url = @Url.Action("Index"),
OnBegin = "Start",
OnComplete = "Stop"
};
}
@using (Ajax.BeginForm(AjaxOptions))
{
<input type="text" name="myName" id="myName" value="" />
<input type="submit" value="送出" />
}
<img id="loading" src="http://i.imgur.com/3lMWGHa.gif" style="display:none;" />
@section scripts{
<script>
function Start() {
$("#loading").css("display", "block");
}
function Stop() {
$("#loading").css("display", "none");
}
</script>
}
二、使用jQuery.ajax()事件
Controller為
using System.Web.Mvc;
namespace 使用ajax.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(int id, string name)
{
return View();
}
}
}
View為
@{
ViewBag.Title = "Home Page";
}
@section header{
<style>
img {
border: 1px solid;
}
#loading {
display: none;
margin: 0 auto;
width: 200px;
}
</style>
}
<div id="loading">
<img src="http://i.imgur.com/3lMWGHa.gif" alt="">
</div>
<button id="send">send</button>
@section scripts{
<script>
$("#send").click(function myfunction() {
$.ajax({
url: "",
method: "post",
data: "id=1&name='aaa'",
dataType: "html"
});
});
$(document).ajaxStart(function () {
$("#send").hide();
$("#loading").show();
});
$(document).ajaxStop(function () {
$("#send").show();
$("#loading").hide();
});
</script>
}
參考資料: