将变量从 JS 传递到 VB.net

Posted

技术标签:

【中文标题】将变量从 JS 传递到 VB.net【英文标题】:Passing Variable from JS to VB.net 【发布时间】:2011-10-29 22:19:35 【问题描述】:

我有一个在 js 函数中获取值的变量。我需要将它的值作为双精度值放入 vb.net 变量中。

我尝试将变量放入标签中,然后从 vb.net 中的标签中获取它,如下面的代码所示:

JS 部分。

document.getElementById("Label1").innerText = nwLat;

然后在vb部分

   Dim nwLat As Double
    nwLat = Label1.Text
    MsgBox(nwLat)

它对我没有任何想法?出现的错误是 输入字符串的格式不正确。

干杯!

【问题讨论】:

什么不起作用?代码会抛出异常吗?值是空的吗?我们需要更多细节...... 输入字符串的格式不正确。是错误 Label1是html中标签的实际id吗? 标签的文本值将在 ViewState 中维护和检索,因此这不太可能起作用。尝试改用<input type="hidden" /> 【参考方案1】:

javascript 中:

__doPostBack(
    'edit',
    JSON.stringify( ID: id, Code: code, AcctNo: acctNo )
);

在 VB.NET 中:

Protected Sub Page_Load(s As Object, e As EventArgs) Handles Me.Load
    If Not Page.IsPostBack Then
        '...
    Else
        Dim eventTarget As String = Request.Form!__EVENTTARGET
        Dim eventArgument As String = Request.Form!__EVENTARGUMENT
        If Not eventArgument Is Nothing AndAlso Not eventTarget Is Nothing AndAlso eventTarget = "edit" Then
            Dim jss As New JavaScriptSerializer()
            Dim ac As AccountCode = jss.Deserialize(Of AccountCode)(eventArgument)
        End If
    End If
End Sub

【讨论】:

【参考方案2】:

没有任何类型的 ajax 的最简单方法是使用隐藏字段。

标记:

<asp:HiddenField ID="nwLatHidden" runat="server" Value="" />

JS:

document.getElementById('nwLatHidden').value = '6.00'; // or of course the value from your function.

.NET 在您的回发例程中:

Dim nwLat As Double
nwLat = nwLatHidden.Value

【讨论】:

在 nwLat = CDbl(nwLatHidden.value) 处输入字符串格式不正确 你知道如何附加调试器吗? nwLatHidden 在尝试将其转换为 double 之前的值是多少? 看我上面的编辑,检查结果看是否可以解析成double类型。【参考方案3】:

您需要使用 ClientID 或 UniqueID:

document.getElementById("<%=Label1.UniqueID%>").innerText = "Hi";

【讨论】:

以上是关于将变量从 JS 传递到 VB.net的主要内容,如果未能解决你的问题,请参考以下文章

如何根据以下条件将变量从 loginform 传递给 app.js,并在使用 react js 时移动到下一个屏幕

使用 GET 路由将变量从 ReactJS 前端传递到 NodeJS 后端

如何将 node.js 变量传递/访问到 html 文件/模板

将Array从JS传递给PHP并创建SESSION变量

将变量从 jsp 文件传递​​到标签

如何将变量从外部 JavaScript 传递到 HTML 表单