【问题标题】:Trying to use remote field validation尝试使用远程字段验证
【发布时间】:2012-11-05 21:12:33
【问题描述】:

我只是第一次尝试使这项工作: http://msdn.microsoft.com/en-us/library/gg508808%28v=vs.98%29.aspx

在我的模型中我有

    [Remote("RequireName", "Contact")]
    [Editable(true)]
    public string Name { get; set; }

在我的控制器中

public JsonResult RequireName(string Name)
    {
        bool resultbool = ((Name != null) && (Name.Length > 0));
        return this.Json(resultbool ? "OK." : "Not OK.", JsonRequestBehavior.AllowGet);
    }

(我现在不关心它的结果消息。)

在生成的 HTML 中,我有:

<input type="text" value="" name="Name" id="Name" data-val-remote-url="/[mysite]/Contact/RequireName" data-val-remote-additionalfields="*.Name" data-val-remote="'Name' is invalid." data-val="true" class="text-box single-line">

URL http://localhost/[mysite]/Contact/RequireName 返回“Not OK.”,这是正确的。 URL http://localhost/[mysite]/Contact/RequireName?Name=something 返回“OK。”,这是正确的。

但是当我编辑该字段时,甚至当我提交完整的表单时,验证都不会发生。 我确定我错过了一些东西。如果你能帮助我,谢谢。

【问题讨论】:

  • 根据我的经验,客户端验证错误的最常见原因是缺少 javascript 引用。您可以在表单上查看源代码并发布生成的 HTML 吗?
  • 另外,另一个常见问题是 web.config 中未启用 ClientValidationEnabledUnobtrusiveJavaScriptEnabled - 你检查了吗? (这在您参考的 MSDN 文章中给出的“检查验证代码”部分的第 3 步中进行了描述。)
  • ClientValidationEnabled 和 UnobtrusiveJavaScriptEnabled 都已启用,我没有特殊的 javascript 包含,我没有在我遵循和链接的教程中提到 javascript 包含。
  • 我忘了提,但是当我提交完整的表单(不是逐个字段)时,标准验证如 [StringLength(6, MinimumLength = 3)] 或 [Required] 工作正常,显然只有[Remote ...] 验证类型不起作用。

标签: c# asp.net-mvc-4 validation


【解决方案1】:

经过更多的互联网搜索,我了解到我必须包含“jquery.validate.min.js”和“jquery.validate.unobtrusive.js”。听起来很基础,但我还不知道。

【讨论】:

    猜你喜欢
    • 2021-02-19
    • 1970-01-01
    • 1970-01-01
    • 2014-08-09
    • 1970-01-01
    • 1970-01-01
    • 2012-03-19
    • 2011-10-01
    • 1970-01-01
    相关资源
    最近更新 更多