ASP.NET MVC 3 LoadingElementDuration无法正常工作?

Sto*_*eak 2 ajax jquery asp.net-mvc-3

我正在玩一个小的MVC 3应用程序,我已经在我的ajax提交的表单上设置了LoadingElementDuration参数,但似乎它根本没有效果.如果我将其设置为1或5000,则动画始终以相同的速度播放.

这是一个已知的bug还是什么?

这是我的视图代码,它部分取自"Pro ASP.NET MVC 3 Framework"; 动画不会持续5秒钟:

@model IEnumerable<MvcAjax.Models.Appointment>

@{
    ViewBag.Title = "Appointment List";
}

<h2>Appointment List</h2>

@using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId = "tabledata", LoadingElementId = "loading", LoadingElementDuration = 5000 }))
{ 
    <p id="loading" style="font-size: 70px; background-color: Red; display: none; overflow: hidden;">Loading data from server...</p>

    <table>
        <thead>
            <tr>
                <th>Client Name</th>
                <th>Appointment Date</th>
            </tr>
        </thead>
        <tbody id="tabledata">
            @Html.Partial("AppointmentData", Model)
        </tbody>
    </table>

    <div>
        @Html.DropDownList("id", new SelectList(new[] { "All", "Joe", "Jane", "Bob" }, ViewBag.SelectedValue ?? "All"))
        <input type="submit" value="Submit" />
    </div>

}
Run Code Online (Sandbox Code Playgroud)

Sto*_*eak 8

我稍微调整了一下库代码,看起来它确实是一个bug.
问题出在jquery.unobtrusive-ajax.js的以下代码行中:

duration = element.getAttribute("data-ajax-loading-duration") || 0;
Run Code Online (Sandbox Code Playgroud)

如果我将其更改为:

duration = parseInt(element.getAttribute("data-ajax-loading-duration")) || 0;
Run Code Online (Sandbox Code Playgroud)

动画播放正确.当它是一个数字时,jQuery show函数中的duration参数应该是一个整数,而不是一个字符串.

他们可能应该在官方图书馆中改变这一点.我希望这可以帮助其他人.