2013-02-22 73 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。

相關問題