繁体   English   中英

CS0103:名称“ rand”在当前上下文中不存在

[英]CS0103: The name 'rand' does not exist in the current context

我知道此错误一直是大约十二个问题的中心,但我看不到其他任何问题的处境。

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

作为替代解决方案...

<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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM