Проверка событий разрешена с использованием в конфигурации или & lt;% @ Page EnableEventValidation = & ldquo; true & rdquo; % & GT; на странице [дубликат]

Вы также можете использовать метод compareTo() для сравнения двух строк. Если результат compareTo равен 0, то две строки равны, в противном случае сравниваемые строки не равны.

== сравнивает ссылки и не сравнивает фактические строки. Если вы создали каждую строку, используя new String(somestring).intern(), вы можете использовать оператор == для сравнения двух строк, в противном случае могут использоваться только методы equals () или compareTo.

42
задан ROMANIA_engineer 30 November 2017 в 22:15
поделиться

17 ответов

в файле aspx вы должны поместить первую строку следующим образом:

<%@ Page EnableEventValidation="false" %>

, если у вас уже есть что-то вроде <%@ Page, поэтому просто добавьте rest => EnableEventValidation="false" %>

Я рекомендую не делать этого.

65
ответ дан Royi Namir 15 August 2018 в 16:41
поделиться
  • 1
    Этот ответ обратный, EnableEventValidation = & quot; false & quot; это то, что вы имеете в виду. – Dave L 19 September 2011 в 20:50
  • 2
    Отключите eventvalidation (плохая идея, потому что вы теряете немного безопасности, которая поставляется с очень небольшими затратами). – Nick Kahn 19 May 2012 в 03:41
  • 3
    то какая будет ХОРОШАЯ ИДЕЯ? рекомендую ... – SHEKHAR SHETE 24 February 2014 в 10:19
  • 4
    Зачем вам публиковать то, что вы не рекомендуете делать? – d512 17 September 2016 в 19:49
  • 5
    @ user1334007, потому что это ответ на его вопрос. Мисс действительно поставила это, чтобы предотвратить эту ошибку. Это не значит, что я согласен. Они также добавили sqldataadapter. Соглашусь ли я его использовать? нет – Royi Namir 17 September 2016 в 19:52

Ах, к сожалению. Поскольку вы добавляете их по существу, клиентская сторона asp.net взрывается. К сожалению, вам придется отключить EventValidation, так как есть некоторые важные меры защиты, которые помогают (например, инъекция зла в выпадающие окна). Другой альтернативой является создание собственного составного элемента управления, что, конечно, здесь кажется немного более сложным. Я бы попытался выключить проверку событий, но будьте очень осторожны, чтобы вы не доверяли никаким значениям на странице, которые могли бы быть использованы плохо, просто меняя их - например, скрытые ключи, SQL-инъекцию через комбинированные поля и т. Д.

3
ответ дан Adam Tuliper - MSFT 15 August 2018 в 16:41
поделиться
  • 1
    я думаю, мне придется проверить его на стороне сервера правильно? – l--''''''---------'''''''''''' 19 September 2011 в 21:12
  • 2
    как я могу сделать это на стороне сервера? – l--''''''---------'''''''''''' 19 September 2011 в 22:05

, если вы измените UseSubmitBehavior="True" на UseSubmitBehavior="False", ваша проблема будет решена.

<asp:Button ID="BtnDis" runat="server" CommandName="BtnDis" CommandArgument='<%#Eval("Id")%>' Text="Discription" CausesValidation="True" UseSubmitBehavior="False" />
4
ответ дан Baby Groot 15 August 2018 в 16:41
поделиться

Моя проблема заключалась в том, что у меня были вложенные теги формы. После удаления внутренней, разработанной для меня.

-2
ответ дан Botle Khauhelo 15 August 2018 в 16:41
поделиться

Вероятно, это не причина вашей проблемы, но я заметил, что вы использовали optgroups в своем раскрывающемся списке, поэтому я решил, что это может помочь кому-то, если они завершатся здесь с этой проблемой. Для меня мне нужно было создать раскрывающийся список, который будет отображать с помощью optgroups, и я в конечном итоге использовал принятый ответ здесь , но пока он корректно отобразил элемент управления, он дал мне эту ошибку. Как я прошел, это подробно описано в моем ответе здесь .

29
ответ дан Community 15 August 2018 в 16:41
поделиться
  • 1
    как отключить проверку? Я не редактирую записи, которые я просто добавляю из источника данных один раз, и это – l--''''''---------'''''''''''' 19 September 2011 в 20:47
  • 2
    Проблема в том, что вы добавляете значения на стороне клиента. ASP знает, что он отобразил раскрывающееся меню на странице с определенным набором допустимых значений. Значение, выбранное клиентом, не содержалось в исходном наборе значений, поэтому пользователю предлагается взломать раскрывающийся список, чтобы добавить это значение и прекратить обработку страницы. – Dave L 19 September 2011 в 20:58
  • 3
    но пользователь не имеет возможности добавлять в него значения. почему asp думает, что он добавил ценности? – l--''''''---------'''''''''''' 19 September 2011 в 21:01
  • 4
    Пользователь добавляет значения через javascript: $ ('# lstProblems'). Html (tmp); Существует несколько способов использования браузерами браузеров, таких как IE Developer Tools, Inspect Element в Chrome, Firebug в Mozilla и т. Д. – Dave L 19 September 2011 в 21:02
  • 5
    как я могу сделать это на стороне сервера? – l--''''''---------'''''''''''' 19 September 2011 в 22:05

У меня была такая же проблема с datalist, я динамически связываю, добавив EnableViewState = "false", успокоил сообщение об ошибке. Я полагаю, что если я привязываюсь программно, тогда элемент управления заполняется на каждом столбце назад, вид состояние не должно поддерживаться, если оно может или не может измениться при каждом обратном вызове, поэтому я динамически связываю его, lol.

7
ответ дан Corey 15 August 2018 в 16:41
поделиться

У меня была аналогичная проблема из-за копирования пасты с другой страницы, что я получил:

<form id="form1" runat="server">
    ...
    <form id="form2" runat="server">
    ....
    </form>
</form>

Я просто удалил форму с id = "form2" внутри формы с id = "form1" и выпустил прошло. Это может быть не ваша проблема, но может быть что-то подобное.

0
ответ дан Eugene Bosikov 15 August 2018 в 16:41
поделиться

Эта ошибка также может быть вызвана вложенным тегом <form> на главной странице, которая не разрешена.

<form id="someid"></form>

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

Решение

Вы должны разбейте вложенность тега <form>. Следующее должно стать

<form method="" name="form1">
  <form method="" name="form2>
  </form>
</form>

должно стать

<form method="" name="form1">    
</form>

<form method="" name="form2>    
</form>
5
ответ дан Hammad Khan 15 August 2018 в 16:41
поделиться
  • 1
    Использование веб-форм. Понадобилось время, чтобы понять это. – James 2 December 2016 в 11:12
  • 2
    Ты прав. Но вы также не упоминали о каких-либо решениях в случае использования & lt; form & gt; тег крайне необходим. – reaz 4 September 2017 в 15:11
  • 3
    @reaz обновленный ответ. Решение очевидно. Тег form не может быть вложенным. – Hammad Khan 9 September 2017 в 08:08

Вы можете добавить ViewStateMode = "Disabled"

asp: UpdatePanel ID = "UpdatePanel1" runat = "server" ViewStateMode = "Disabled"

0
ответ дан Jawad Siddiqui 15 August 2018 в 16:41
поделиться

Добавить на верхнюю страницу

protected void Page_Load(object sender, EventArgs e)
{    
    if (!Page.IsPostBack)
    {
        //Code display data
    }
}
3
ответ дан Joseph 15 August 2018 в 16:41
поделиться
  • 1
    Не могли бы вы добавить более подробную информацию о решении, которое вы предоставили? – abarisone 25 April 2015 в 10:26

У меня была та же проблема, два списка и две кнопки.

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

Я получил недопустимую обратную передачу.

выясняет, что в нем были данные с каналами возврата каретки, которые вы не видите при отображении в списке.

работал отлично в каждом браузере, кроме IE 10 и IE 11.

Удаляет каналы возврата каретки и все работает нормально.

0
ответ дан Nick B 15 August 2018 в 16:41
поделиться

Вы также можете заполнить свои данные в событии prerender. Таким образом, вы можете сохранить свою проверку и оставаться в безопасности. Вот пример использования ретранслятора.

protected void Page_PreRender(object sender, EventArgs e)
     {
        List<Objects.User> users = Application.User.GetAllUsers();

        Repeater1.DataSource = users;
        Repeater1.DataBind();
      }
2
ответ дан Pieter de Vries 15 August 2018 в 16:41
поделиться

После этой проблемы на удаленных серверах (production, test, qa, staging и т. д.), но не на локальных рабочих станциях разработки, я обнаружил, что пул приложений был настроен с RequestLimit, отличным от 0.

Это заставило пул приложений отказаться от ответа и ответить с исключением, указанным в вопросе.

Где-то в пути, когда мой проект установочного экрана изменил определение своего пула приложений на использование «3» (возможно, щелчок или неправильный тип).

0
ответ дан StingyJack 15 August 2018 в 16:41
поделиться

Если у вас есть код в вашем Page_Load () событии. Попробуйте добавить это:

if (!Page.IsPostBack)
{ 
//your code here 
}
16
ответ дан Syed Ali Taqi 15 August 2018 в 16:41
поделиться

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

<form

в форме .Net.

15
ответ дан TheAlbear 15 August 2018 в 16:41
поделиться
  • 1
    вы сделали ma day .. 2 цента от меня. – geminiousgoel 27 July 2017 в 07:31
  • 2
    Лучший ответ, чтобы сказать вам правду. – Daniel Almeida 3 August 2017 в 01:56
  • 3
    Вы правы, и как предотвратить это? Иногда мы не можем удалить & lt; form & gt; тег для некоторых стилей CSS – reaz 4 September 2017 в 15:08

Моим решением было добавить:

ctlUpdatePanel.Update();

после привязки управления после обратной передачи. это было в обновлении с атрибутом UpdateMode = "Условный".

1
ответ дан Tone Škoda 15 August 2018 в 16:41
поделиться
29
ответ дан Community 5 September 2018 в 15:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: