0

我知道这个错误是大约十几个问题的中心,但我在其他任何问题中都没有看到我的情况。

我在 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 页面的标记中创建的变量。

4

1 回答 1

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。

于 2013-02-22T23:10:12.410 回答