我有一个 ASP.NET Web应用程序托管在Azure中。有趣的是,有时应用程序会在数据库中创建两条记录。
谁能确认我在下面是否在做任何愚蠢的事情?存储库代码段:
private SomeEntity entities = new SomeEntity ();
public void Add(SomeObject _someObject)
{
entities.EmployeeTimeClocks.AddObject(_someObject);
}
public void Save()
{
entities.SaveChanges();
}
创建代码段:
repo.Add(someObject);
repo.Save();
注意:我正在使用 SQL Azure 进行永久存储。
我有这个 JQuery 显示加载,这可能会导致此问题?
$('#ClockInOutBtn').click(function () {
jQuery('#Loading').showLoading(
{
'afterShow': function () { setTimeout("$('form').submit();", 2000) }
}
);
});
服务器端代码看起来不错。
我认为这个问题很可能是在javascript/客户端层引起的 - 我猜你会以某种方式收到两个表单提交。
要调试此问题,请尝试:
- 使用 Firebug(或 IE 或 Chrome 的调试器)来检测问题。
- 使用 Fiddler 检查通过网络从客户端发送到服务器的内容。
- 在 MVC 中使用 Trace ASP.Net 检测控制器被调用的次数。
如果问题出在客户端,则可以使用某种检查来解决此问题,以防止重复提交 - 根据应用程序的要求,可能值得在客户端和服务器上添加此检查。