在ASP .Net Core应用程序中,可以使用JavaScript验证来检查用户是否已更新表单。如果用户已将表单修改但未保存,则可以在其离开页面之前提示用户更新表单或放弃更改。这可以通过以下代码实现:
$(document).ready(function () {
var formEdited = false;
$('form :input').on('change input', function () {
formEdited = true;
});
$(window).on('beforeunload', function () {
if (formEdited) {
return '您是否要保存表单更改?';
}
});
});
上面的代码将会监控一个表单,如果用户进行任何修改,它将设置formEdited
变量的属性为真。 而当用户准备离开页面时,会展示一个提示消息,询问用户是否保存更改。 如果用户单击确定则将继续保存更改,否则页面将重定向到他们所点击的新位置。
public async Task SaveForm(MyModel model)
{
ValidateRequest(model);
if (ModelState.IsValid)
{
await _myService.SaveAsync(model);
return RedirectToAction(nameof(Index));
}
return View(model);
}
上面的代码演示了一个基本的ASP .Net Core动作,在其中可以使用验证器将发送的数据与一些规则进行比较。 如果表单验证失败,则该方法将返回一个视图并再次显示表单。 而如果成功,则将表单数据保存到数据库中,并重定向到索引视图。