具有多个参数的Webforms回发

时间:2019-03-06 12:45:06

标签: asp.net webforms postback dopostback

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

有人here建议您使用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]

1 个答案:

答案 0 :(得分:1)

单击按钮时,页面将发送以下HTML表单字段:

__EVENTTARGET: btn_postbackButton
__EVENTARGUMENT: [object Object]

要在服务器端将json作为字符串获取,请使用以下按钮标记:

<button type="button" id="btn_postbackButton" onclick="__doPostBack('btn_postbackButton', '{one: \'someText\', two: \'moreText\'}');">TestButton</button>