我知道这个错误一直是十几个问题的中心,但我没有看到任何其他问题的情况。
我在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 :(得分: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。