2017-02-02 8 views
0

大規模な既存のASP.NET WebFormsアプリケーションがあります。このアプリケーションはマスターページを持ち、誰がセキュリティ、ナビゲーション、マネージャーを持っていますか? 開発されたページはContentPlaceHolderにあります。既存のASP.NET WebFormsアプリケーションでWebコンポーネントを使用

Webコンポーネントを使用してJSで新しいページを開発したいと考えています。ページ上でWebコンポーネントを使用するには、インポートする必要があります(<link rel="import" href="...">)。このインポートはページの<head>にある必要があります。私の場合、<head>はマスターページにあります。だから私はそれらを使用できるようにマスターページ内のすべての既存のWebコンポーネントをインポートする必要があります。

非常に良いアイデアのようには聞こえません。

どうすればいいですか?

答えて

3

Asp.Netでは、ContentPlaceHolderをheadタグに配置できます。ページに必要なWebコンポーネントを読み込むのではなく、マスターページで読み込むことができます。

マスターページ

<html> 
<head runat="server"> 
    <title></title> 
    <asp:ContentPlaceHolder ID="cpHead" runat="server"> 
    </asp:ContentPlaceHolder> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:ContentPlaceHolder ID="cpBody" runat="server"> 

     </asp:ContentPlaceHolder> 
    </div> 
    </form> 
</body> 
</html> 

あなたのHTMLはもちろん

<html> 
<head> 
    <title></title> 
    <link href="..." rel="import"> 
</head> 
<body> 
</body> 
</html> 
+0

のようになります。Webフォーム

<asp:Content ID="Content1" ContentPlaceHolderID="cpHead" runat="server"> <link rel="import" href="..."> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="cpBody" runat="server"> </asp:Content> 

!私は恥ずかしい...この愚かな質問を申し訳ありません。 – Olof

0

通常、RegisterClientScriptIncludeを使用します。これにより、スクリプトファイルがページ上部に追加されますが、<head>には追加されません。

ClientScript.RegisterClientScriptInclude("myScript", "myJavaScriptFile.js"); 

あなたが本当に<head>でそれをしたい場合は、あなたがこのコード(マスター、ページ、ユーザーコントロール)を置いた場所それは問題ではありませんHtmlGenericControl

HtmlGenericControl genericControl = new HtmlGenericControl("script"); 
genericControl.Attributes.Add("type", "text/javascript"); 
genericControl.Attributes.Add("src", "myJavaScriptFile.js"); 
this.Page.Header.Controls.Add(genericControl); 

を使用する必要があります。 Aspnetは彼らがクライアント側の適切な場所に来るようにします。

関連する問題