Я хочу вызвать функцию __doPostBack(eventTarget, eventArgument). Затем в файле кода я бы прочитал аргументы, как обычно, вот так: Dim param As String = Request("__EVENTARGUMENT"). Однако это не работает для нескольких аргументов.
Кто-то здесь предложил использовать json или csv-список. Обычно я просто выбираю разделитель, который разделяет мои аргументы. Однако в моем случае теперь аргумент может содержать любой символ, поэтому я не могу просто выбрать какой-либо разделитель, поэтому я решил использовать JSON.
Я попробовал это.
Разметка:
<button type = "button" id = "btn_postbackButton" onclick = "__doPostBack('btn_postbackButton', {one: 'someText', two: 'moreText'});">TestButton</button>
Код-файл
If (IsPostBack) Then
Dim tgt As Object = Request("__EVENTTARGET")
Dim param As Object = Request("__EVENTARGUMENT") ' what datatype to use?
' [...]
' how to get arguments from json?
End If
Теперь, как мне вернуть мои аргументы в код? Какой тип данных я использую для параметров? Звонок param.ToString() возвращает только [object Object]
Более того, аргументы генерируются в файле кода в моем реальном приложении, и они могут быть разными, а некоторые могут отсутствовать, использование простого массива для меня не работает, так как вы не можете постфактум определить, какая позиция массива соответствует какому аргументу. И несмотря ни на что, это все еще дает мне [object Object].





При нажатии кнопки страница отправляет следующие поля HTML-формы:
__EVENTTARGET: btn_postbackButton
__EVENTARGUMENT: [object Object]
Чтобы получить ваш json на стороне сервера в виде строки, используйте следующую разметку кнопки:
<button type = "button" id = "btn_postbackButton" onclick = "__doPostBack('btn_postbackButton', '{one: \'someText\', two: \'moreText\'}');">TestButton</button>