2013-02-22 74 views
0

我知道这个错误已经约了十几个问题的中心存在,但我没有看到的任何人,其他问题我的情况。CS0103:名称“兰德”并不在当前的背景下

我已在在一个aspx页面的顶部以下内容:

<% String rand = new Random().Next().ToString(); %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <script type="text/javascript" src="../js/script.js?v=<%=rand%>"></script> 

它建立得很好,但是当页面被访问时,我得到的错误抱怨线的<%=rand%>部分说没有关系不知道什么rand是。作为一个大型的Web应用程序,我们不想缓存频繁更改的代码,这是我们正在采用的方法。事实上,这种确切的方法可以在我们的另一页面上工作,但由于某种原因,本页不工作。我们只想生成一个随机数,因为它用于我们不想缓存的多个js文件。

我已经通过许多其他CS0103问题看了,但他们没有我读谈谈aspx页面的标记创建的变量。

+0

你是否可能缺少生产代码中head元素的runat =“server”属性? – 2013-02-22 23:10:23

回答

1

作为替代解决方案...

<script type="text/javascript" src="../js/script.js?v=<asp:Literal id="randNum" runat="server" />"></script> 

然后在后面的代码。

randNum.Text = new Random().Next().ToString(); 

作为一个侧面说明,虽然使用这种方法来防止缓存是有点破解。如果您使用的是.NET 4.5,我会建议您查看scriptBundle和styleBundle类,它们基本上实现了这种方法,并缩小了您的脚本/ css。

相关问题