将变量从JS传递到VB.net

时间:2011-08-18 15:47:17

标签: javascript asp.net vb.net

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

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

Js部分。

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

然后在vb部分

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

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

干杯!

3 个答案:

答案 0 :(得分:3)

没有任何类型的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

答案 1 :(得分:2)

在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 :(得分:1)

您需要使用ClientID或UniqueID:

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