使用 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 远程选项时如何防止显示远程错误消息?的主要内容,如果未能解决你的问题,请参考以下文章

关闭选项卡时如何防止调试器停止

如何防止为远程 ssh 连接启动新的 VS Code 窗口

如何防止远程进程在 Windows 中被关闭?

防止JavaFX TabPane在滑动时切换选项卡

如何防止远程提交?

在 React 中拖动 Div 中的图像时如何防止在新选项卡中打开