2012-11-06 19 views
6

Tôi muốn hiển thị hoạt ảnh tải khi người dùng nhấp vào nút gửi. Gif đơn giản sẽ thực hiện công việc. Đây là mã của tôi:Kích hoạt tải hình động bằng cách Html.BeginForm gửi

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

Trả lời

12

Sửa

tôi đã nhầm tưởng rằng câu hỏi liên quan các helper AJAX. Đây là cách bạn có thể làm điều đó bằng cách sử dụng HtmlHelper.

Đầu tiên, thêm một ID mẫu để bạn có thể lấy nó sử dụng JQuery:

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

Tiếp theo, thêm một xử lý sự kiện Javascript để ngăn chặn việc nộp hình thức và hiển thị GIF tải.

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

(câu trả lời gốc sau ...)

Sử dụng các lớp AjaxOptions để thiết lập một LoadingElementId, và helper Ajax sẽ hiển thị yếu tố đó trong khi chờ đợi phản hồi từ máy chủ:

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

Sau đó, chỉ cần đặt gif của bạn bất cứ nơi nào bạn muốn nó hiển thị (ẩn nó ban đầu):

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

Tôi đã thử nghiệm mã của bạn mà không thành công. Tôi đang gọi phương thức hành động SData sẽ trả về chế độ xem khác nhau khi hoàn thành. Ý tưởng là hiển thị gif tải cho đến khi SData chuyển hướng sang chế độ xem khác. Tui bỏ lỡ điều gì vậy? –

+0

@JasminPvvlovic xin lỗi về điều đó, tôi hoàn toàn cách nhau. Nghĩ rằng bạn đang sử dụng trình trợ giúp Ajax. Vui lòng xem câu trả lời cập nhật của tôi. – McGarnagle

+0

Giải pháp này không hoạt động đối với tôi. AjaxOptions không phải là một phần tử trong Html.BeginForm. Nó đang ném một lỗi. – paaone

Các vấn đề liên quan