当我用linq更新记录到sql时,我的DeleteLesson()
方法被多次调用。LINQ to sql在asp.net中进行多个调用mvc 3
我的控制器看起来是这样的:
public ActionResult Delete(int id)
{
deleteLesson(id);
return Content("<p style=color:red><strong>Deleted...</strong></p>");
}
public void deleteLesson(int id)
{
LLDataContext storeDB = new LLDataContext();
lesson lesson = (from l in storeDB.lessons
where l.lessonID == id
select l).Single();
lesson.statusID = DELETED;
lesson.dateDeleted = DateTime.Now;
lesson.deletedByUserID = getAppUserID();
try
{
storeDB.SubmitChanges();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
storeDB.SubmitChanges();
}
}
而我的观点是这样的
@Ajax.ActionLink("Delete", "Delete",
new { id = item.lessonID },
new AjaxOptions {
HttpMethod = "POST",
UpdateTargetId = @rowNumber.ToString()
}
)
什么想法?
编辑
另外,如果我在阿贾克斯选择使用confirm = "Do you want to delete"
我必须点击好三倍。
这是一个真正的MVC问题,如果我理解正确,那么与LINQ无关。 – BrokenGlass 2011-03-18 17:48:37
你怎么知道该方法被多次调用?调试器是否产生异常? – Zakaria 2011-03-18 17:58:40
我知道它由于几个原因运行多次,如果我设置了一个中断点,它将触发deleteLesson()三次。它也会引发重复的行异常。 – marknery 2011-03-18 19:01:47