0

私はASP Webサイトを構築しましたが、次の問題があります:-

その中でマスターページを使用していて、2 つの contentplaceholders を 1 つずつコンテンツに定義し、@page ディレクティブの一番上のディレクティブでページタイトルを指定しましたが、ページタイトルが表示されません。手動でタグを追加する必要があります。

次に、マスターページからコンテンツページを作成すると、それが作成され、名前を変更してもクラスの名前が変更されません。_Default のままなので、すべてのページが _default に継承されていました。

最も重要な ことは、ページを使用してデータベースにデータを入力および表示していることです。isadminページの読み込み時に資格情報に従って設定したブール値を使用しました。そして、可視プロパティがに設定されているパネルを追加しましたVisible = '<%#IsAdmin %>'。Visual Studio 環境で実行すると正常に動作しますが、パブリッシュして実行すると動作せず、パネルが表示されたままになります。なぜそれが起こっているのですか?何か案が?ありがとう

サーバーでWindows認証を有効にする必要があったため、目に見える問題は修正されました。残りの 2 つの問題については回答待ちです。ありがとう

4

3 に答える 3

2
  1. <head runat=server>をマスター ページに追加してみてください。そうして初めて、ASP.net はタグを「認識」して変更することができます。
  2. いくつかの aspx ページが同じクラス名を持つことは、それほど悪いことではありません。ASP.NET 2.0 は、すべてのページを独自のコンパイル単位として処理し始めました。ページはお互いを見ることができません。ページを相互に認識させ、それらをインスタンス化または操作するための特別なディレクティブがあります。だから大した害はないはず
  3. 多分あなたはこれを正しくテストしておらず、Visual Studio で動作すると誤解していますか??? ただし、いずれにしても、ロジックを OnInit に移動することをお勧めします。そうすれば、はるかに早く実行されます。Page.OnLoad の前にコントロール ツリーがビルドされていると思います。あなたがしているのはデータバインディングです.DataBindが呼び出された場合にのみ実行される可能性があります.

または、安全な方法を使用してください:IsAdmin最初の呼び出しでそれ自体を初期化し、結果を変数にキャッシュするようにプロパティを作成します。

于 2009-05-22T18:12:00.823 に答える
0

質問 2 について - [プロジェクト] -> [新しいアイテムの追加] でコンテンツ ページを追加し、そこで適切な名前を付けます。そうすれば、ネーミングは一貫性があり、全体を通して正しいものになります。

#3 についてですが、サーバーから実行するとどのような HTML が出力されますか?

于 2009-05-22T18:22:21.803 に答える
0

最初の問題は、.aspx ページの @Page ディレクティブのタイトル部分に入力することで解決できます。マスター ページは、ブラウザーのタイトル バーにそのテキストを表示します。

問題#2は、ビジュアルスタジオのファイル追加オプションを使用してファイルを追加することで解決する必要があります。

于 2009-05-22T18:25:51.253 に答える