如果记录没有改变,如何退出OnPostAsync



如果有人打开编辑屏幕一行,什么也不做,但看,我怎么能得到OnPostAsync退出,而不是更新一些字段和保存?

//POST
public async Task<IActionResult> OnPostAsync()
{
if (!ModelState.IsValid)
{
return Page();
}

如果没有任何变化,我想退出这里

Dances_Moderated.LastUpdated = DateTime.Today;
Dances_Moderated.DanceStatus = "WaitingOK";
Dances_Moderated.UserID = Convert.ToInt32(HttpContext.Session.GetString("UserID"));

_context.Attach(Dances_Moderated).State = EntityState.Modified;

一个简单的方法就是检查您要更新的数据库记录。如果所有的值都没有改变,那么您可以在修改lastUpdated、d祖宗等之前从操作返回。

你可以尝试使用js来检查是否有人更改了字段。使用js变量来存储默认值,在调用OnPostAsync之前,比较新数据和js变量。并增加一个路由参数Edited传递数据到OnPostAsync,如果数据被编辑,Edited为真。否则,Edited为假

我以为有某种"状态";

我使用jquery来启用提交按钮(加载被禁用),如果任何输入或下拉菜单有变化。

$('input[type=text].form-control').on("input", function () {
if ($(this).val() != '') {
$('#btnSave').attr('disabled', false);
} else {
$('#btnSave').attr('disabled', true);
}
});

对于下拉框,我发现没有办法将它们轻松地包含在我的检查中,所以我只是使用了它们的id和上面的代码。非常简单的样板复制和粘贴。下面是处理下拉菜单的两个例子。

$('#Dances_Moderated_Ages').on("change", function () {
if ($(this).val() != '') {
$('#btnSave').attr('disabled', false);
} else {
$('#btnSave').attr('disabled', true);
}
});
$('#Dances_Moderated_SingleDate').on("change", function () {
if ($(this).val() != '') {
$('#btnSave').attr('disabled', false);
} else {
$('#btnSave').attr('disabled', true);
}
});

最新更新