You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET MVC中[Remote]验证特性失效,其余属性验证正常该如何解决?

问题原因及修复方案

    1. [Remote] 特性的控制器名称参数错误
      ASP.NET MVC 约定中,[Remote] 特性第二个参数只需要填写控制器前缀名称,不需要带 Controller 后缀,你当前写的 AccountController 会导致路由匹配失败,验证请求根本不会走到对应的动作方法。把模型代码修改为:
    [Remote("VerifyNewPassword", "Account", ErrorMessage="Error")]
    
    1. JSON返回配置错误
      如果你使用的是ASP.NET MVC 5及更早版本,默认禁止GET请求返回JSON结果,你需要在返回Json的时候显式指定允许GET请求:
    public JsonResult VerifyNewPassword(ChangePasswordViewModel m)
    {
        return Json(false, JsonRequestBehavior.AllowGet);
    }
    
    如果你不想用GET请求,可以给[Remote] 特性增加HttpMethod配置,指定用POST提交验证请求:
    [Remote("VerifyNewPassword", "Account", ErrorMessage="Error", HttpMethod = "POST")]
    
    1. 动作方法参数绑定不匹配
      Remote验证默认只会传递当前正在验证的字段值到后端,你接收整个ChangePasswordViewModel的话,如果模型里其他必填字段没有赋值,可能会触发模型验证失败导致动作方法没有按预期执行。建议直接接收单个字段即可:
    public JsonResult VerifyNewPassword(string newPassword)
    {
        // 你的验证逻辑
        return Json(false, JsonRequestBehavior.AllowGet);
    }
    
    1. 额外检查项
      确认视图中NewPassword对应的input元素已经正确生成了data-val-remote相关的特性,没有被手动修改过验证属性。

内容的提问来源于stack exchange,提问作者Anna Boyko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 09:12:03