1

私はWebフォームサイトに取り組んでいます。head タグには runat サーバー属性があります。マスターページで。

次のような .js ファイルに ResolveClientUrl を使用しようとしています。

 <head runat="server">
   .. 
  <script src='<%= ResolveClientUrl("~/myscript.js") %>' type="text/javascript" >    </script>
 </head>

しかし、その後、エラーが発生しました:

The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>). 

問題はrunatサーバーにあることがわかったので、headタグから削除しました...そして今、次のエラーが発生しています:

Using themed css files requires a header control on the page. (e.g. <head runat="server" />). 

では、runat サーバー ヘッド内で ResolveClientUrl を使用するにはどうすればよいでしょうか。

アップデート:

マスター ページの上部にあるインクルードを使用してスクリプトを追加しました (正常に動作するようです)。しかし、より良い解決策があるかもしれません。

<!-- #include file="myscript.js" -->
4

2 に答える 2

3

データバインディングを使用できます。

<head ID="head" runat="server">
    ..
    <script src='<%# ResolveClientUrl("~/myscript.js") %>' type="text/javascript" >    </script>
</head>

次に、コードビハインド(できればPage Loadイベントハンドラー)で:

head.DataBind()
于 2012-05-02T18:32:54.923 に答える