使用 JustValidate 远程选项时如何防止显示远程错误消息?
Posted
技术标签:
【中文标题】使用 JustValidate 远程选项时如何防止显示远程错误消息?【英文标题】:How to prevent remote error message from displaying when using JustValidate remote option? 【发布时间】:2021-12-29 02:04:54 【问题描述】:我正在使用 JustValidate 库 (https://github.com/horprogs/Just-validate) 进行表单验证。它在客户端完美运行,但在执行远程验证时似乎无法正常运行。例如: 如果我们有一个输入字段“电子邮件”,我们的 javascript 中的远程验证将如下面的代码所示。
rules:
email:
email: true,
remote:
url: '@Url.Action("Validate", "ActivityTypes")',
sendParam: 'email',
successAnswer: 'OK',
method: 'GET'
每次用户在电子邮件输入中输入内容时,都会将值发送到服务器并检查它是否正常。问题是你总是得到一个好的响应。每次您收到该响应时,都会显示输入的错误消息(即使输入已正确填写)。 我的控制器操作如下所示:
public async Task<IActionResult> Validate(ActivityType values)
var activityType = await _context.ActivityType
.FirstOrDefaultAsync(m => m.Name == values.Name);
if (activityType == null)
return NotFound();
return Ok();
我已经尝试在控制器中从一个动作重定向到另一个动作,返回 NotFound() 但我仍然得到 Ok 响应,并且错误消息再次出现。 在 JustValidate 库的 GitHub 页面上尝试演示时,我注意到输入总是显示输入“电子邮件”的错误消息,即使它们不应该显示。有没有人找到解决方法?我已经在 80% 的表单中使用了这个库,不想为其他库更改它。
【问题讨论】:
【参考方案1】:由于您提到了successAnswer: 'OK'
,您需要将响应返回为Content
。像这样。
[HttpGet]
[Route("check-exists")]
public IActionResult CheckExists(string email)
return email == "anuraj@example.com" ? Content("Not Okay") : Content("OK");
【讨论】:
感谢您的回答,但问题仍然存在。我收到消息“发生服务器错误。请稍后再试。”当我应该得到回应时。以上是关于使用 JustValidate 远程选项时如何防止显示远程错误消息?的主要内容,如果未能解决你的问题,请参考以下文章