Asp.net валидаторы не стреляют - PullRequest
2 голосов
/ 03 февраля 2010

Я работаю над устаревшим проектом, который был обновлен за годы с 1.1 до 2.0, а сейчас установлен на 3.5. В настоящее время у меня возникают некоторые проблемы с обязательными полевыми валидаторами, когда я не нажимаю на кнопку отправить.

Это довольно простая установка. У меня есть два текстовых поля, и мне нужно заполнить оба, когда пользователь нажимает кнопку «Отправить», у меня есть RFV, указывающее на каждое текстовое поле, но когда я нажимаю кнопку «Отправить», проверка не запускается, а затем полученный код взрывается. Я попытался использовать обе группы ValidationGroup для соответствующих элементов управления, а также изменить отображение с «Динамический» на «Статический», но безрезультатно.

У меня также были некоторые проблемы при использовании элементов управления AJAX, когда я получаю ошибки javascript и тому подобное, что для меня указывало бы на неверную конфигурацию в отношении библиотек на стороне клиента. Конечно, я не совсем уверен, как определить ошибки в моем конфиге. Есть предложения?

Спасибо

Mike

Ответы [ 4 ]

2 голосов
/ 03 февраля 2010

Что касается конкретной ошибки, я не уверен, но я бы предостерег вас от изменения кода, чтобы у вас не было проблем на стороне сервера.

Добавьте проверку в ваш метод, чтобы убедиться, что валидаторы действительны.

if(Page.IsValid)
{
    //Now do your thing
}
0 голосов
/ 02 июля 2012

Хотя это не ответ конкретно на ваш случай, это ответ на «Sys.WebForms не определен», для которого эта ссылка отображается в верхних результатах поиска.Поэтому я хочу включить этот ответ для всех, кто потратил два дня впустую, пытаясь найти ответ.

Если ответ, который дал Майк С, не работает для вас, и вы используете неясный или более новый браузер, подумайте, если заголовок пользовательского агента, отправляемый в ASP.Net, вызывает «отключение» ajax.

В моем случае эта ошибка возникала только на iPad в полноэкранном режиме.Ответ состоял в том, чтобы сообщить ASP.Net, что браузер поддерживает ajax.Я просто добавил это к коду моей страницы:

protected override void OnPreInit(EventArgs e)
{
    if (Request.UserAgent != null && Request.UserAgent.IndexOf("AppleWebKit", StringComparison.CurrentCultureIgnoreCase) > -1)
    {
        this.ClientTarget = "uplevel";
    }

    base.OnPreInit(e);
}

Подробнее см. Sys.WebForms не определена на iPad .

0 голосов
/ 03 февраля 2010

Я нашел решение, исследуя подобную проблему на форуме поддержки Telerik. Хитрость заключается в том, чтобы удалить тег <xhtmlConformance mode="Legacy"/> из файла web.config, поскольку это каким-то образом предотвращает загрузку на страницу надлежащих библиотек JS.

0 голосов
/ 03 февраля 2010

Если вы получаете ошибки JavaScript, это может быть причиной того, что ваши элементы управления проверкой не запускаются.

Попробуйте использовать инструмент под названием FireBug, чтобы точно определить причину возникновения ошибок в JavaScript.

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