16

次のようなスクリプトタグを挿入するにはどうすればよいですか。

<script src="somejsfile"></script>

また

<script type="text/javascript>some javascript</script>

部分的なビューからページのヘッドタグに?


更新:古い質問への回答これはASP.NETMVCに関するものです。RenderSectionを使用できます。Razorビューエンジンを使用したMVC3のサンプルは次のとおりです。

レイアウトビューまたはマスターページ:

<html>
  <head>
  <script ...></script>
  <link .../>
  @RenderSection("head")
  </head>
  <body>
  ...
  @RenderBody()
  ...
  </body>
</html>

表示、例:ホーム:

@section head{
  <!-- Here is what you can inject the header -->
  <script ...></script>
  @MyClass.GenerateMoreScript()
}
<!-- Here is your home html where the @RenderBody() located in the layout. -->
4

2 に答える 2

2

THXの答えがうまくいったとしても、MVCの意図は本質的にステートレスであるため、それは良いものではありません. </body>さらに、彼のソリューションでは、スクリプトを配置すべき場所に配置できません。ほとんどのサイトでは、パフォーマンスと検索エンジンの最適化に最適であるため、ページの一番下のタグの直前にスクリプト宣言を配置する必要があります。

Darin Dimitrovのおかげで、答えがあります。

エディタ/表示テンプレートでのセクションの使用

彼の答えでは、レイアウト ビュー内の部分ビューからスクリプトを登録できます。

注意点は、ディクショナリ オブジェクトで GUID を使用してアイテムをアンサー マークすることです。そのため、部分ビューにリストされているのと同じ順序でスクリプトがマスター ページにレンダリングされるという保証はありません。

これには 2 つの回避策があります。

  1. 部分ビューからスクリプトを 1 つだけ登録する- または -
  2. HTML ヘルパーの実装を変更して、順序付けをサポートする

私は後者に取り組もうとしています。

幸運を。

于 2011-12-06T23:45:18.437 に答える
0

部分ビューはUserControlsです。RegisterClientScriptIncludeの方法は使えませんClientScriptManagerか?

protected override void OnLoad(EventArgs e) {
    base.OnLoad(e);
    Page.ClientScript.RegisterClientScriptInclude("some key", "http://website/javascript.js");
}
于 2009-11-20T04:24:04.203 に答える