Webforms使用多个参数进行回发

问题描述 投票:0回答:1

我想称之为__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()只返回[object Object]

更重要的是,参数是在我的实际应用程序中的代码文件中生成的,并且可能有不同的一些,有些可能会丢失,使用简单的数组对我来说不起作用,因为你无法确定事后哪个数组位置对应于哪个论点。而且不管它还给我[object Object]

asp.net webforms postback dopostback
1个回答
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>
© www.soinside.com 2019 - 2024. All rights reserved.