2015-06-11 5 views
1

Я борюсь со следующей проблемой на моем сайте MVC 5.Имена типов валидации в ненавязчивых правилах проверки клиента должны состоять из

Имена типов валидации в ненавязчивых правилах проверки клиента должны быть состоят только из строчных букв. Неверное имя: «requiredif4», клиент типа правила: RequiredIfValidationRule

ли эта ошибка означает, что я могу использовать только символы A-Z в названии, и ничего другого.

Эта ошибка не всегда возникает. Страница отображается отлично, а затем неожиданно эта ошибка начинается. Когда я перерабатываю свой пул приложений, ошибка уходит на несколько часов.

Любые идеи о том, что может быть проблемой?

ответ

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]; 
} 

С уважением

 Смежные вопросы

  • Нет связанных вопросов^_^