如果有人打開一行的編輯螢屏并且除了看什么都不做,我怎樣才能讓 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;
uj5u.com熱心網友回復:
一種簡單的方法是檢查您嘗試更新的資料庫記錄。如果沒有任何值發生變化,那么您可以在修改 lastUpdated、danceStatus 等之前從您的操作回傳。等等
uj5u.com熱心網友回復:
可以嘗試使用js來檢查是否有人更改了欄位。使用js變數存盤默認值,并在呼叫之前OnPostAsync將新資料與js變數進行比較。并添加路由引數Edited以將資料傳遞給OnPostAsync,如果資料已編輯,Edited為真。否則,Edited為假。
uj5u.com熱心網友回復:
我認為模型或背景關系中有某種“狀態”會改變。
如果任何輸入或下拉選單發生更改,我使用 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);
}
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/461403.html
上一篇:用戶不包含Identity的定義
下一篇:外鍵物件參考的模型驗證問題
