當我用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