ASP.NET сломал рендеринг кода на стороне клиента проверки в Firefox - PullRequest
1 голос
/ 08 января 2009

Этот был глупее для меня. Его очень легко продублировать, хотя это довольно неясная проблема. Это произошло, когда я выполнял некоторые работы с 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

Ответы [ 2 ]

2 голосов
/ 03 апреля 2009

Проверьте свой web.config на наличие xhtmlconformance и убедитесь, что он не установлен на устаревшую версию.

http://aspadvice.com/blogs/rbirkby/archive/2006/11/01/Client_2D00_side-validation-in-Firefox.aspx

1 голос
/ 08 января 2009

У меня такая же проблема с аналогичной настройкой. Различия в настройках browserCaps - самая многообещающая возможность, с которой я когда-либо сталкивался.

http://msdn.microsoft.com/en-us/library/sk9az15a(VS.80).aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...