Я использую AjaxOptions в Ajax ActionLink, и я подумал, что загрузочный gif будет отображаться в UpdateTargetId (containerDiv), а это не так. Я также ожидал, что загрузочный gif будет работать так же долго, как и LoadingElementDuration, и это не так. Независимо от продолжительности, которую я использую - GIF загружается и быстро исчезает (и, кажется, сокращается в отличие от прямого исчезновения). Я что-то упустил в своем коде, который препятствует ожидаемому поведению?
@{
ViewBag.Title = "Index";
}
<script type="text/javascript">
function OnBeginAjax() {
var item = $("#spanBegin");
item.text("Begin Request Fired!");
}
function OnCompleteAjax() {
var item = $("#spanComplete");
item.text("Complete Request Fired!");
}
</script>
<h2>Index View</h2>
<div id="spinner_container">
<img id="spinner" src="@Url.Content("~/content/themes/base/images/ajax-loader.gif")" class="hidden"/>
</div>
<br />
<br />
<span id="spanBegin">Begin Request.....</span><br/>
<span id="spanComplete">Complete Request.....</span>
<div>
@Ajax.ActionLink(" << Fire Ajax Link", "AjaxMethod", new AjaxOptions
{
UpdateTargetId = "containerDiv",
LoadingElementId = "spinner",
LoadingElementDuration = 100000,
OnBegin = "OnBeginAjax",
OnComplete = "OnCompleteAjax"
})
</div>
<div id="containerDiv"></div>
И если то, что у меня есть (и то, что я вижу), является ожидаемым поведением (которое кажется довольно бесполезным) - какие-либо идеи о том, как я бы передал UpdateTargetId в качестве параметра функции OnBegin?
Вот отрендеренный HTML:
<!DOCTYPE html>
<html>
<head>
<title>Index</title>
<link href="/Content/Site.css" rel="stylesheet" type="text/css" />
<script src="/Scripts/jquery-1.7.1.min.js" type="text/javascript"></script>
<script type="text/javascript" src="/scripts/jquery.unobtrusive-ajax.min.js"></script>
</head>
<h1>
MVC Sandbox Test Site</h1>
<body>
<script type="text/javascript">
$(document).ready(function () {
// function OnBeginAjax() {
// alert("Begin no params");
// // debugger;
// // var item = $("#activityDiv");
// }
// function OnCompleteAjax() {
// alert("Complete no params");
// }
});
function OnBeginAjax() {
//alert("Begin no params");
// debugger;
var item = $("#spanBegin");
item.text("Begin Request Fired!");
}
function OnCompleteAjax() {
var item = $("#spanComplete");
item.text("Complete Request Fired!");
}
</script>
<h2>Index View</h2>
<div id="spinner_container">
<img id="spinner" src="/content/themes/base/images/ajax-loader.gif" class="hidden"/>
</div>
<br />
<br />
<span id="spanBegin">Begin Request.....</span><br/>
<span id="spanComplete">Complete Request.....</span>
<div>
<a data-ajax="true" data-ajax-begin="OnBeginAjax" data-ajax-complete="OnCompleteAjax" data-ajax-loading="#spinner" data-ajax-loading-duration="100000" data-ajax-mode="replace" data-ajax-update="#containerDiv" href="/Home/AjaxMethod"> << Fire Ajax Link</a>
</div>
<div id="containerDiv"></div>
</body>
</html>