2017-10-27 18 views
-1

比較される変数に値があり、値があり、それが真であれば、プログラムは何もしませんが、句を読んでも、ちょうどジャンプ、私はブレークポイントでそれを見た。ASP.Net MVC句が無視されている場合

これは私のコントローラである:

public ActionResult Delete(int? id) 
    { 
     string result = null; 
     try 
     { 
      if (id == null) 
      { 
       result = HIQResources.errorMessageUnknownAction; 
       return new JsonResult { Data = result }; 
      }  
      StudentViewModel vm = new StudentViewModel(); 
      StudentDetail studentDetail = studentManager.GetStudentDetailById(id.Value); 
      if (studentDetail == null) 
      { 
       result = HIQResources.errorMessageUnknownRecord; 
       return new JsonResult { Data = result }; 
      } 
       int deleteResult = studentManager.Delete(id.Value);  
       if (deleteResult == 1) 
       { 
        vm.Alert.SetSuccessMessage(HIQResources.messageOperationSuccess); 
        TempData["alert"] = vm.Alert;  
        result = HIQResources.messageOperationSuccess; 
        return new JsonResult { Data = result }; 
       }     
       vm.Alert.SetErrorMessage(HIQResources.errorMessageUnableToExecuteOperation); 
       TempData["alert"] = vm.Alert; 
       result = HIQResources.errorMessageUnableToExecuteOperation; 
       return new JsonResult { Data = result }; 
     } 
     catch (DbUpdateException ex) 
     { 
      Log.AddLogRecord(LogManager.LogType.Warning, LogManager.LogPriority.Low, LogManager.LogCategory.Teacher, ex.Message, ex.StackTrace, base.GetLoggedUser()); 

      result = HIQResources.errorMessageUnableToDeleteRecord; 
      return new JsonResult { Data = result }; 
     } 
     catch (Exception ex) 
     { 
      Log.AddLogRecord(LogManager.LogType.Error, LogManager.LogPriority.High, LogManager.LogCategory.Inscription, ex.Message, ex.StackTrace, base.GetLoggedUser()); 

      result = HIQResources.errorMessageExceptionOccurred; 
      return new JsonResult { Data = result }; 
     } 
    } 

これは、すべてJavaScriptでこれらのメソッド呼び出しているボタンによってトリガーされている:正直に言うと

$(function() { 
      var id; 
      var button; 

      $(".btnDeleteArgs").on("click", function (e) { 
       e.preventDefault(); 
       button = $(e.target); 
       id = button.attr('data-hiq-student-id');    
      });  

      $('#ModalDeleteButton').on("click", function (e) {     
       var token = $('input[name="__RequestVerificationToken"]').val(); 
       $.post("/Student/Delete/", 
        { 
         __RequestVerificationToken: token, 
         id: id        
        }, 

        function (data) { 
         $('#myModal .close').click(); 
         var baseurl = '@Url.Action("Index")';  
         var url = baseurl + "?message=" + data; 
         window.location.href = url; 
        });  
      }); 

を、私は思いませんコントローラが問題を開始するのでJavascriptが問題になります。コントローラーはジャンプする 'if'節で実行されません。

+1

'場合(deleteResult == 1)' =である必要があり、その場合には...私はを削除するプロファイルのIDでコメントで言いました> 'deleteResult'(と' studentDetail')の値は何ですか? 'deleteResult'が1と等しくないか、' studentDetail'がnullでない場合、条件はスキップされます。 –

+0

これはコンパイルされないので、完全なコードにすることはできません。 * if文が機能していないか、変数の値が何であるかを教えてください。 – DavidG

+0

主に 'deleteResult'は0または'> 1'です – Rahul

答えて

0

あなたはdeleteResultは、あなたのif条件が

if (deleteResult == id.Value) 
{ 
+0

問題は、 Statmentの場合、それはそれを読むことさえありません。 –

+0

'deleteResult'値は' stude ntManager.Delete(id.Value) 'メソッドを使用すると、メソッド本体を知らなくても、特定の' id'を持つ生徒が削除され、結果が '1'であるかどうかを知ることは難しいです。 –

+0

@PauloMartins、それは不可能です...条件が満たされない場合(またはプリプロセッサディレクティブが定義されていない場合)、条件ブロックをスキップします – Rahul

関連する問題