繁体   English   中英

ASP.Net MVC 如果子句被忽略

[英]ASP.Net MVC If Clause being Ignored

我的 if 子句被忽略,即使被比较的变量有一个值,如果它有一个值并且它是真的,那么它会做一些事情,但程序甚至没有读取该子句,它只是跳转,我看到了一个断点。

这是我的控制器:

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”子句,它甚至不执行!!!

您在评论中说deleteResult 是我要删除的配置文件的 ID ...在这种情况下,您的if条件应该是

if (deleteResult == id.Value)
{

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM