2016-08-25 5 views
0

このコードでは、ユーザーは日付を追加、削除、または更新できます。問題は、ユーザーがウィンドウを終了し、変更が保存/保持されない場合です。データは 後にコントローラ を送るためのASP.NET MVCに保存しようとすると、スケジュールの更新/削除/追加操作が持続しない

public ActionResult Save(Event updatedEvent, FormCollection formData) 
{ 
    var action = new DataAction(formData); 
    var context = new DataClasses1DataContext(); 

    try 
    { 
     switch (action.Type) 
     { 
      case DataActionTypes.Insert: 
       context.Events.InsertOnSubmit(updatedEvent); 
       break; 
      case DataActionTypes.Delete: 
       updatedEvent = context.Events.SingleOrDefault(ev => ev.Id == updatedEvent.Id); 
       context.Events.DeleteOnSubmit(updatedEvent); 
       break; 
      default: 
       updatedEvent = context.Events.SingleOrDefault(
       ev => ev.Id == updatedEvent.Id); 
       UpdateModel(updatedEvent); 
       break; 
     } 
     context.SubmitChanges(); 
     action.TargetId = updatedEvent.Id; 
    } 
    catch (Exception ex) 
    { 
     action.Type = DataActionTypes.Error; 
    } 
     return (new AjaxSaveResponse(action)); 
} 
+1

を変更し終了する必要があり、私はこの方法を破ることをお勧めします追加の方法では、単一の責任原則を維持する。挿入、更新、削除に分割し、コードからそれぞれ呼び出すことをお勧めします。 次に、デバッガを実行しましたか?あなたはこの振る舞いを再現しましたか?何を手に入れましたか?エラーメッセージはありますか?はいの場合はこれも投稿してください。 – gdyrrahitis

+0

タイトルを明確にし、明快さとスタイル、一貫してインデントされたコードのためのメッセージ本文を書き直しました –

答えて

0

まず利用ブレークポイントは、あなたの保存がまず第一

public ActionResult .... 
db.SaveChange(); 

//

public async .... 
await db.SaveChangeAsync(); 
関連する問題