具有多个参数的 Webforms 回发

Webforms postback with multiple arguments

我想调用 __doPostBack(eventTarget, eventArgument) 函数。在代码文件中,我会像往常一样读取参数:Dim param As String = Request("__EVENTARGUMENT")。然而,这不适用于多个参数。

有人 here 建议您可以使用 json 或 csv-list。通常我只会选择一个分隔符来分隔我的论点。但是在我的例子中,现在参数可以包含任何字符,所以我不能只决定任何定界符,所以我想我会使用 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() returns [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>