- PR -

マスターページについての質問

投稿者投稿内容
おいろん
常連さん
会議室デビュー日: 2008/03/06
投稿数: 32
投稿日時: 2008-03-07 16:33
お世話になります。
マスターページについて以下質問があります。
なにぶん初心者で自分なりに調べましたがいい情報が見つかりませんでした。
お知恵をお貸しいただけないでしょうか。

<しつもん1>
マスターページを使用すると、フォームのヘッダー定義は当然マスターページ側に
ついてしまいます。
ということは、<Script>タグもマスターページ側で定義しないと
いけなくなるのでしょうか?
(JavaScriptで制御するロジックも共通となる?)

<しつもん2>
いくつかページを作成し、後になってマスターページという機能をみつけました。
できればすでに作ったページにもマスターページを付加したいのですが、
Webconfigの<page>にmasterpagefileと設定しても
マスターページが付加されません。
1からつくりなおさないと駄目なのでしょうか?
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2008-03-07 16:45
scriptタグについてはどこに書きたいか、ということで必ずしもマスターページ側に書く必要はないと思います。

書き換え方は次のページが参考になるかなぁ。
http://msdn2.microsoft.com/ja-jp/library/wtxbf3hh.aspx
マスターページを利用する側はContentコントロールの中に様々なコントロールを入れる必要があります。
結構面倒だとは思うので、一からつくってしまったほうが楽かもしれません。
おいろん
常連さん
会議室デビュー日: 2008/03/06
投稿数: 32
投稿日時: 2008-03-07 17:09
どっとねっとふぁん様

レスありがとうございます。

>scriptタグについてはどこに書きたいか、ということで必ずしもマスターページ側に書く必要はないと思います。

私の中ではscriptタグはheadタグの中に書くと思い込んでいるのですが、
マスターページを利用する側でscriptタグを書くとなると、
どこに書くことになるのでしょうか?

>結構面倒だとは思うので、一からつくってしまったほうが楽かもしれません。

そうですか・・・。確かにいろいろやってもうまくいかなかったので、
その方向ですすめたいと思います。
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2008-03-08 07:38
引用:

私の中ではscriptタグはheadタグの中に書くと思い込んでいるのですが、
マスターページを利用する側でscriptタグを書くとなると、
どこに書くことになるのでしょうか?


MasterページのheadセクションにContentPlaceHolderを追加します。


コード:
<head runat="server">
  <title>MasterPage</title>
  <asp:ContentPlaceHolder id="head" runat="server">
  </asp:ContentPlaceHolder> 
</head>



そしてWebページ側では、headのContentPlaceHolderに<script>...</script>を追加します。

コード:
<asp:Content ID="Content0" ContentPlaceHolderID="head" Runat="Server">
・・・ここに追加する
</asp:Content>



_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集
kiyokura
ベテラン
会議室デビュー日: 2007/08/08
投稿数: 69
お住まい・勤務地: 岡山
投稿日時: 2008-03-08 19:27
引用:

おいろんさんの書き込み (2008-03-07 17:09) より:

私の中ではscriptタグはheadタグの中に書くと思い込んでいるのですが、




必ずしもhead要素内に書く必要はないですよ。


ASP.NETを使われているようですので、一度、出力されたHTMLのソースを見てみてください。使っているコントロールやイベントにもよりますが、body要素内にASP.NETが出力するscript要素が、いろいろ書き出されていると思います。(あと、ClientScript.RegisterClientScriptBlock等でコード中から意図的に出力した時も。)


head要素内に書けばbody要素内のコンテンツが読み込まれる前にscriptが読み込まれていることが期待できるので、いろいろ面倒が無いのでそこに書くことが確かに多いですが、今回のようにheadにスマートに書きにくい場合や後ろの方が都合が良い時はその限りではないと思いますよ。
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2008-03-09 07:13
SEOを考慮すると、

JavaScriptを外部ファイルにする

もしくは、</html>の後に記述するとよいようです。



_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-03-09 19:50
引用:

Accessさんの書き込み (2008-03-09 07:13) より:

SEOを考慮すると、

JavaScriptを外部ファイルにする

もしくは、</html>の後に記述するとよいようです。


それは HTML に準拠していませんね。 SEO として効果があるのかも疑問です。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2008-03-10 07:25
MIX08の

BT03 - Advanced Search Engine Optimization: Generating More Site Trafiic from Search

によると,このテクニックは古くて効果がないようです。

失礼しました。


ASP.NETで検索エンジンに優しいWebサイトを構築しようとすると難しいですね。
たとえば、GridViewのページングを有効にしてもクローラーはページングのリンクを
認識してくれません。


_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集

[ メッセージ編集済み 編集者: Access 編集日時 2008-03-10 07:26 ]

スキルアップ/キャリアアップ(JOB@IT)