【问题标题】:Validation type names in unobtrusive client validation rules must consist不显眼的客户端验证规则中的验证类型名称必须包含
【发布时间】:2015-06-11 11:27:23
【问题描述】:

我在 MVC 5 网站上遇到以下问题。

不显眼的客户端验证规则中的验证类型名称必须 仅由小写字母组成。无效名称:“requiredif4”,客户端 规则类型:RequiredIfValidationRule

这个错误是否意味着我只能在名称中使用字符 a-z 而不能使用其他字符。

此错误并非总是发生。页面在一段时间内呈现良好,然后突然开始出现此错误。然后,当我回收我的应用程序池时,错误会消失几个小时。

关于可能是什么问题的任何想法?

【问题讨论】:

    标签: asp.net-mvc validation asp.net-mvc-5 unobtrusive-validation


    【解决方案1】:

    我终于设法解决了这个问题。

    以下是完整的解决方案。简而言之,如果您有一个 ValidationRule 将被访问多次(在我的情况下为数百次),您需要确保只要 IIS 会话处于活动状态,该名称就保持唯一。在我的情况下是 24 小时。

    以下代码在客户端为 ValidationRule 生成一个唯一名称。

    修复问题的代码如下:

    const string Chars = "abcdefghijklmnopqrstuvwxyz";
    
    var c = "";
    if (count > 0)
    {
        var p = 0;
        while (count / Math.Pow(Chars.Length, p) > Chars.Length)
            p++;
    
        while (p > 0)
        {
            var i = (int)(count / Math.Pow(Chars.Length, p));
            c += Chars[Math.Max(i, 1) - 1];
            count = count - (int)(i * Math.Pow(Chars.Length, p));
            p--;
        }
        var ip = Math.Max(Math.Min((count) % Chars.Length, Chars.Length - 1), 0);
        c += Chars[ip];
    }
    

    问候

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-26
      • 1970-01-01
      • 1970-01-01
      • 2021-02-19
      • 2012-04-15
      相关资源
      最近更新 更多