Что может заставить валидаторы ASP.NET не срабатывать на развернутом сайте? - PullRequest
2 голосов
/ 25 февраля 2009

Локально это работает, я знаю, что это синдром «это работает на моей машине», но я не могу понять, почему.

Простая веб-страница, поля, обязательные валидаторы полей, такие как

<asp:textbox id="tbEmail" runat="server" CssClass="field"></asp:textbox>                                            <asp:requiredfieldvalidator id="Requiredfieldvalidator2" runat="server" Display="Dynamic" ControlToValidate="tbEmail" ErrorMessage="Email is required" CssClass="required"></asp:requiredfieldvalidator>

кнопка с

<asp:button id="btnSendRequest" runat="server" Text="Submit" CausesValidation="True"></asp:button>

Локально это срабатывает, и код не запускается, в развернутой версии средства проверки не запускаются, и код выполняется.

Должно быть просто, но я слишком долго на это смотрел.

Спасибо людям - Тарик

Ответы [ 5 ]

1 голос
/ 25 февраля 2009

Я думал о том же - asp_regiis создаст папку aspnet_client в корне вашего сайта. Также следите за сообщениями об ошибках JavaScript, они помогут в диагностике.

0 голосов
/ 26 февраля 2009

Установите Fiddler: Fiddler и следите за трафиком. Есть ли какие-либо ошибки 404 или 500 HTTP при загрузке вашей страницы? Возможно, он пытается загрузить необходимые файлы проверки на стороне клиента, но сталкивается с проблемами.

0 голосов
/ 25 февраля 2009

Разница может заключаться в том, что при локальном тестировании запускаются средства проверки на стороне клиента, а на сервере - только на стороне сервера. Убедитесь, что вы добавили IsValid if в ваш метод, например:

void MyClickHandler(object sender, EventArgs e)
{
   if( IsValid)
   {
      //rest of the code
   }
}
0 голосов
/ 25 февраля 2009

В такой ситуации мне полезно сравнить исходный HTML-вывод, полученный локально, с выводом на развернутом сервере. Вероятно, вам не хватает проверочного javascript в развернутой версии, как указал Эрик ... но это вам точно скажет.

0 голосов
/ 25 февраля 2009

Я не уверен, относится ли это к вашей версии .NET, но вам, возможно, придется запустить aspnet_regiis -i на сервере, чтобы установить сценарии для проверки. Еще раз проверьте, пожалуйста, прежде чем что-либо делать :)

Надеюсь, это направит вас в правильном направлении.

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

...