Причиной этого является то, что по умолчанию ASP.NET проверяет, что отправленные значения в каждом поле формы являются теми, которые были отправлены на страницу изначально. Вот пример:
У нас есть DropDownList с 3 вариантами - A, B и C. ASP.NET знает о них, потому что мы добавили их из кода ASP.NET. В JavaScript мы добавляем четвертый вариант, D. ASP.NET не знает об этом, потому что это произошло на стороне клиента. Когда мы отправляем страницу, если выбран вариант D, ASP.NET говорит: «D - это не один из вариантов, которые я вам дал. Возможно, вы злонамеренно пытаетесь манипулировать значениями сообщения в запросе». Он защищает систему и разработчика, прерывая запрос прямо там.
Вы можете просто отключить проверку страницы - на рассматриваемой странице, как предлагается в сообщении об ошибке, или для всех страниц на уровне web.config:
<system.web>
<pages enableEventValidation="false"/>
</system.web>
Проверка события не всегда необходима, если вы пишете свой код таким образом, что вы никогда не выполняете явное действие, напрямую основанное на значениях, представленных вам в форме (что вам никогда не следует делать в любом случае). Неожиданные или не входящие в диапазон значения от пользователя должны игнорироваться или заставлять вас ничего не делать. Пока вы пишете свой код таким образом, вы можете безопасно отключить проверку событий.