2011-08-31 64 views
0

我读过很多关于同一问题的类似线程,但修复程序不适用于我。为什么变量不会从aspx.vb传递到aspx?

我声明我的变量为我的代码在页面后面的类区域中的Public,并在Page_Load子例程中为其赋值,但是当我在javascript函数内的aspx页面中调用该变量时,错误状态'BC30454:表达不是一种方法'。

aspx.vb页

Partial Class Act_Page 

Inherits System.Web.UI.Page 
Public aname As String 

Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 

    DisplayActInfo() 

    aname = Request.QueryString("aname") 

Javasctipt在aspx页面

<script type="text/javascript"> 

var aname2 = <%aname%>; 

任何想法?

干杯,罗布。

回答

2

它应该是:

var aname2 = "<%=aname%>"; 

你忘了=迹象,加上忘了这会导致客户端脚本错误引号这个包起来。

无论如何,这不是最好的实践方式..工作时,这是“经典的ASP”方式。 ASP.NET提供了新的方法来从服务器端发送数据到客户端代码:

Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "aname", "var aname = \"" + Request.QueryString("aname") + "\"; ", true); 

这是C#,但可以很容易地转换到VB.NET以及,也就有了不面条代码相同的效果。

+0

试过之前,但这次它实际上出于某种原因。还有一些其他的错误,我现在已经修好了。 – Rob

+0

非常欢呼。 – Rob