2012-01-19 13 views
2

私は小さなMVC 3アプリケーションで遊んでいて、LoadingElementDurationパラメータを自分のajaxから送信されたフォームに設定しましたが、何の効果もないようです。 1または5000に設定すると、のアニメーションは常に同じ速度で再生されますASP.NET MVC 3 LoadingElementDurationが機能しませんか?

既知のバグなのですか?

ここに私のビューコードですが、それは部分的に "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> 

} 
+0

いくつかのコードを共有してください – Rafay

+0

私のビューのコードを追加しました。 – StockBreak

答えて

8

私はビットにライブラリコードを微調整し、それは本当にバグあるようです。
問題はjquery.unobtrusive-ajax.js から次のコード行である:

duration = element.getAttribute("data-ajax-loading-duration") || 0; 

私はそれを変更した場合:

duration = parseInt(element.getAttribute("data-ajax-loading-duration")) || 0; 

アニメーションが正しく再生されます。数値の場合、の期間は、jQuery show関数の引数は文字列ではなく整数であると想定されています。

おそらく公式ライブラリでこれを変更する必要があります。これが他の人を助けることができれば幸いです。

+0

この問題はVS2015 MVC 5では見られません。おそらく、これはMVC3〜4タイムフレームのバグでした。素晴らしい観察。 –

関連する問題