Этот был глупее для меня. Его очень легко продублировать, хотя это довольно неясная проблема. Это произошло, когда я выполнял некоторые работы с javascript на веб-странице, но также использовал средства проверки, которые предоставляет ASP.NET.
Некоторые предварительные сведения: использование машины для разработки на базе Vista с платформой 3.5 и IIS 7. У меня также есть машина QA, на которой работает Windows Server 2003, также с платформой 3.5, но с IIS 6.
Возьмите страницу с простым TextBox, контролем валидации и кнопкой для их отправки. Например:
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Text is Required" ControlToValidate="TextBox1"></asp:RequiredFieldValidator>
<asp:Button ID="btnSubmit" runat="server" Text="Submit" />
Простой управляющий код проверки ASP.NET здесь ... Идея заключается в том, что код проверки на стороне клиента генерируется для обязательного поля, и обратная передача не выполняется, если в текстовом поле нет поля. Если браузер не поддерживает сценарии на стороне клиента, ASP.NET перехватит его на стороне сервера с помощью свойства Page.IsValid.
Когда я запускаю это на своем компьютере для разработки под управлением Vista, код сценариев на стороне клиента генерируется как для IE, так и для Firefox, и отлично работает .
Когда я работаю с машины контроля качества на основе win2003, клиентский код для элементов управления валидатора также генерируется для обоих браузеров. Код проверки для IE работает нормально ... но Not работает для Firefox. Когда кнопка отправки нажата (с пустым текстовым полем), код на стороне клиента, кажется, игнорируется и выполняется обратный вызов. Теперь ошибка проверки обнаружена на стороне сервера - но я хочу, чтобы знал, почему она не работает на стороне клиента.
Интересно, что если я возьму исходные коды страниц в Firefox с машины разработчика (той, которая работает) и машины QA (той, которая не работает) и сравню их - код проверки на стороне клиента значительно разные.
Идеи о том, что нужно изменить, чтобы заставить код проверки на стороне клиента работать в Firefox с машиной QA?
ОБНОВЛЕНИЕ: было несколько комментариев с просьбой увидеть сгенерированный источник. Я сохранил исходники Dev и QA в виде файлов .htm и сжал их. Вы можете получить их на http://www.optsolutions.com/testvalidation.zip