我在MVC 5网站上遇到以下问题。
不显眼的客户端验证规则中的验证类型名称必须 仅由小写字母组成。名称无效:“requiredif4”,客户端 规则类型:RequiredIfValidationRule
这个错误是否意味着我只能在名称中使用字符a-z而不是其他内容。
此错误不会始终发生。页面渲染一段时间后很好,然后突然发生此错误。当我回收我的应用程序池时,错误会消失几个小时。
关于可能出现什么问题的任何想法?
答案 0 :(得分:0)
我终于设法解决了这个问题。
以下是完整的解决方案。简而言之,如果您有多次访问的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];
}
此致