2011-10-04 35 views
2

FINAL EDIT如果您正在查看此問題,請參閱下面發佈的答案。最初的問題不是EF,而是我的JQuery實現。EF 4.0 - 保存在測試環境中創建重複項,但不在DEV中

編輯:我已經證實,這隻發生在IE(特別是IE 7)。我在Chrome中看不到相同的行爲。我還沒有測試過Firefox,但我們不支持我們環境中的FF,所以我並不擔心它。)

在我發佈一堆代碼之前,我只想把它看看其他人是否曾經歷過類似的事情,如果是的話,他們的罪魁禍首是什麼。

我在創建新實體的MVC項目中有代碼。代碼在我的本地環境中按預期工作。但是,當我將代碼推送到測試服務器環境時,相同的代碼在保存時會創建兩條記錄。

我已經驗證數據庫模式是相同的,所以我已經將其作爲可能的原因予以消除。

有沒有其他人經歷過這樣的事情?如果是這樣,你做了什麼來解決這個問題?

感謝

+1

不,我沒有。你可以在保存的地方發佈代碼嗎?你確定你將相同的代碼推送到測試服務器嗎?本地你在用什麼數據庫?在測試服務器上怎麼樣? – itsmatt

+0

我已確認代碼被正確推出。我在本地和測試環境中使用SQL Server 2008。數據庫物理位於兩臺不同的服務器上,但架構完全相同。我剛發現重複只發生在IE中。 – camainc

+0

我剛剛擺弄Fiddler並確認IE發送兩次相同的POST請求! DOH !! camainc

回答

0

我最終跟蹤問題下來到一些JavaScript的錯誤。這個問題與實體框架或MVC無關。我有一些jQuery代碼可以幫助我添加圖標來提交按鈕,並且在IE中導致提交發生兩次。

如果有人有興趣,這裏是有問題的代碼:

$('input[type="submit"]').each(function() { 
    $(this).hide().after('<button>').next().button({ 
     icons: { primary: $(this).attr('icon') }, 
     label: $(this).val() 
    }).click(function (event) { 
     event.preventDefault(); 
     $(this).prev().click(); 
     return false; 
    }); 
}); 

這導致沒有問題在Chrome,但在IE按鈕解僱了兩次提交。爲了解決這個問題,我添加了onclick =「return false;」到我的輸入標籤,問題就消失了。

相關問題