Ошибка веб-формы Asp.net: неверный аргумент обратного или обратного вызова
<script type="text/javascript">
var s = false;
$(document).ready(function () {
$("#btnSaveEducation").click(function () {
s = true;
});
window.onload = function () {
if (s == false) {
var select = document.getElementById("year");
for (var i = 2011; i >= 1900; --i) {
var option = document.createElement('option');
option.text = option.value = i;
select.add(option, 0);
}
}
};
});
</script>
....
...
<body>
<asp:DropDownList ID="year" runat="server" name="year">
</asp:DropDownList>
</body>
....
..
Привет. В Asp.Net Web From я получаю это error
когда я click btnSaveEducation
:
[Invalid postback or callback argument. Event validation is enabled using
<pages enableEventValidation="true"/> in configuration or
<%@ Page EnableEventValidation="true" %> in a page.
For security purposes, this feature verifies that arguments to postback
or callback events originate from the server control that originally
rendered them. If the data is valid and expected, use the
ClientScriptManager.RegisterForEventValidation method in order to
register the postback or callback data for validation.]
Зачем? Благодарю.
2 ответа
Решение
По умолчанию вы не можете добавить опцию в выпадающий список из jquery или java-скрипта.
Потому что Asp.net проверяет каждый элемент управления после обратной передачи.
Вы можете изменить директиву страницы следующим образом
<%@ Page ... EnableEventValidation="false" %>
что не приведет к проверке на стороне сервера, что не очень хорошо.
Если вы хотите достичь вышеуказанного, вы можете использовать html drop
вниз и использовать hidden field
и получить выбранное значение из hidden field
вместо того, чтобы выпадать, это будет работать.
Подобный вопрос на SO
Просто поместите этот код в ваш файл aspx:
если у вас уже есть что-то вроде <% @ Page... EnableEventValidation = "false"%>