0

このエラーが約 12 の質問の中心になっていることは知っていますが、他の質問のいずれにも私の状況は見られません。

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 ファイルで使用されるため、生成する乱数は 1 つだけにします。

他の多くの 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 に答える