【问题标题】:Webforms postback with multiple arguments具有多个参数的 Web 表单回发
【发布时间】:2019-07-28 03:20:28
【问题描述】:

我想调用__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】:

    当您的按钮被点击时,页面会发送以下 HTML 表单字段:

    __EVENTTARGET: btn_postbackButton
    __EVENTARGUMENT: [object Object]
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-08
      相关资源
      最近更新 更多