我已经阅读过很多关于同一问题的类似主题,但这些修复不适用于我。
我在页面后面的代码的“类”区域中将变量声明为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")
ASPX页面中的Javasctipt
<script type="text/javascript">
var aname2 = <%aname%>;
有任何想法吗?
干杯,罗布。
最佳答案
它应该是:
var aname2 = "<%=aname%>";
您忘记了
=
符号,还忘记了将其包装在引号中,否则将导致客户端脚本错误。无论如何,这不是最佳实践方式。.在工作时,这是“经典ASP”方式。 ASP.NET提供了从服务器端向客户端代码发送数据的新方法:
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "aname", "var aname = \"" + Request.QueryString("aname") + "\"; ", true);
这是C#,但也可以轻松转换为VB.NET,并且在没有意大利面条代码的情况下也具有相同的效果。