[英]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.