将变量从 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 后端