2012-11-06 10 views
6

Chcę wyświetlić animację ładowania, gdy użytkownik kliknie przycisk przesyłania. Prosty gif wykona zadanie. To jest mój kod:Aktywowanie animacji ładowania przez podanie Html.BeginForm

@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> 
} 

Odpowiedz

12

Edit

ja błędnie myśli kwestia dotyczyła pomocnika AJAX. Oto jak można to zrobić za pomocą HtmlHelper.

pierwsze, dodać identyfikator do formularza, dzięki czemu można chwycić go za pomocą JQuery:

@using (Html.BeginForm("SData", "Crawl", FormMethod.Post, new { id = "myform" })) 
{ 
    // the form 
} 

Następnie dodaj obsługi zdarzeń JavaScript, żeby przechwycić przesyłanie formularza i wyświetlić GIF ładowania.

$("#myform").submit(function(e) { 
    $("#myLoadingElement").show(); 
}); 

(odpowiedź Original następująco ...)

Użyj klasę AjaxOptions ustawić LoadingElementId i pomocnika Ajax pokaże ten element podczas oczekiwania na odpowiedź serwera:

@using (Html.BeginForm("SData","Crawl", new AjaxOptions() { 
    LoadingElementId="myLoadingElement" 
})) 
{ 
    // form 
} 

Następnie po prostu umieść swój gif tam, gdzie chcesz go wyświetlić (ukryj go na początku):

<div id="myLoadingElement" style="display: none;"> 
    <img src="loading.gif" alt="Loading..." /> 
</div> 
+0

Przetestowałem twój kod bez powodzenia. Nazywam metodę akcji SData, która zwróci inny widok, kiedy to zrobi. Chodzi o to, aby wyświetlić ładowanie gif, dopóki SData nie przekieruje do innego widoku. Czy czegoś brakuje? –

+0

@JasminPvvlovic Przepraszam za to, całkowicie się rozstawiłem. Myślałem, że używasz pomocnika Ajax. Zobacz moją zaktualizowaną odpowiedź. – McGarnagle

+0

To rozwiązanie nie działa dla mnie. The ajaxOptions nie jest elementem w Html.BeginForm. Występuje błąd. – paaone

Powiązane problemy