2012-06-10 33 views
5

Có ai biết bất kỳ lỗi hoặc thông tin chi tiết nào khác giải thích tại sao khi sử dụng MVC4 với điện thoại di động jquery, bất kỳ biểu mẫu nào được tạo bằng cách sử dụng kết quả Ajax.BeginForm gửi hai lần đến bộ điều khiển. Ban đầu tôi đã nghĩ rằng vì tôi đang sử dụng gói js mà cùng một tệp js có thể đã được đưa vào hai lần và có thể kích hoạt khi gửi biểu mẫu, tuy nhiên, không phải vậy, danh sách tệp js của tôi là:MVC 4, Jquery Mobile, Ajax.BeginForm khiến các biểu mẫu gửi hai lần

jquery-1.6.4.js 
jquery-ui.1.8.11.js 
jquery.mobile-1.1.0.js 
jquery.unobtrusive-ajax.js 
jquery.validate.js 
knockout-2.0.0.js 
MicrosoftAjax.js 
MicrosoftMvcAjax.js 
MicrosoftMvcValidation.js 
Modernizr.js 

Trong dự án Ajax được kích hoạt hoàn toàn cho mọi thứ tức là tôi không vô hiệu hóa bất cứ điều gì thông qua mobileinit.

Tôi chưa đăng bất kỳ mã biểu mẫu nào vì nó nghĩa là xảy ra với mọi biểu mẫu - một biểu mẫu có một trường và nút gửi sẽ khiến quá trình gửi hai lần - nhưng chỉ khi Ajax.BeginForm đang được sử dụng.

Html.BeginForm không hiển thị bất kỳ vấn đề nào trong số này.

Tôi đã bị mắc kẹt trên này cho một vài ngày nay vì vậy bất kỳ trợ giúp sẽ được đánh giá cao

+2

Hãy thử nó mà không tham chiếu đến tệp 'Microsoft * .js'. Vì MVC3 chúng không cần thiết cho việc xác nhận không phô trương và đối với các trình trợ giúp 'Ajax.'. – nemesv

+0

Cảm ơn bạn đã trả lời nemesv. Thật không may, loại bỏ các tập tin Microsoft * .js không giúp đỡ với vấn đề này đặc biệt –

Trả lời

7

jQuery Mobile theo mặc định hi-jack cắm bất kỳ trình hình thành và thực hiện yêu cầu AJAX riêng của mình. Để dừng hành vi này, bạn có thể đặt thuộc tính data-ajax="false" trên bất kỳ thẻ <form> nào. Ngoài ra hãy chắc chắn để ngăn chặn các hành vi thường xuyên của các hình thức vì vậy nó không nộp bình thường, một cái gì đó như:

$('#my-form').on('submit', false); 

Documents: http://jquerymobile.com/demos/1.1.0/docs/forms/forms-sample.html

Bạn cũng có thể chỉ cần sử dụng được xây dựng trong jQuery Mobile AJAX hơn bao gồm JS phụ cho nó. Điều này sẽ chỉ yêu cầu bạn tạo các thuộc tính action của các biểu mẫu cho tệp phía máy chủ mà chúng đăng.

+0

Brilliant, cảm ơn rất nhiều của bạn cho câu trả lời tuyệt vời Jasper. –

+0

@ Jasper ... Câu trả lời tuyệt vời làm việc tuyệt vời :) –

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