[解決済み】なぜASP.NET webformsはRunat="Server "属性が必要なのでしょうか?
質問
なぜ
runat="server"
は必須属性であり、かつ
server
は、私の限られたASP.NETの知識では唯一の選択肢であり、これを使用しないとエラーが発生するのでしょうか?
HTMLタグにオプションで使用できることは理解していますし、クライアント/サーバーのパラダイムと、それが実際に何を指定しているのかは理解しています。
ASP.NETのコントロールであることが暗示されるだけの冗長なタグなのか、それとも何か根本的な理由があるのでしょうか?
解決方法は?
ASP.NETタグとHTMLタグを混在させることができることを理解するためのもので、HTMLタグには
runat="server"
を使用するかしないかです。 タグを入れたままでも何も困らないし、取り出すとコンパイラーエラーになる。 Web言語について、いろいろと暗示をかけると、プログラマー志望の人が入ってきて勉強しづらくなります。 タグの属性について冗長であるべき理由は、これと同じくらいあります。
この会話は、Mike Schinkel の ブログ Microsoft National ServicesのTalbot Crowell氏との間で交わされたものです。 その内容は以下の通りです(出典の文法に誤りがあるため、最初の段落はパラフレーズしています)。
<ブロッククオート
[...]
が、その重要性は
<runat="server">
は、一貫性と拡張性を重視しています。
もし開発者がいくつかのタグをマークしなければならない場合(例えば
<asp: />
をASP.NET Engineが無視できるようにすると、タグや将来の拡張機能の間で名前空間の衝突が発生する可能性もあります。このため
<runat="server">
属性を使用することで、この問題は解決されます。
さらに続きます。
もし
<runat=client>
がすべてのクライアントサイドタグに必要な場合、パーサーはすべてのタグをパースして<runat=client>
の部分があります。
彼は続けます。
現状では。 私の推測が正しければ、パーサーは すべてのテキストを無視します(タグがあってもなくても タグでない限り
runat=server
属性、または"<%
" プレフィックスまたはssi "<!– #include
... (...) また、ASP.NETは設計上では ウェブデザイナーの分離を可能にする (foo.aspx)とウェブ開発者 (foo.aspx.vb)であるため、ウェブデザイナーは 独自のウェブデザイナーツールを使って HTMLとクライアントサイドJavaScriptを配置する ASP.NETのことを知らなくても 特有のタグや属性があります。
関連
-
[解決済み】エラー :リモートサーバーがエラーを返しました。(401) Unauthorized
-
[解決済み】ASP.NETとWeb Tools 2015のインストール後、Visual Studioエラー「オブジェクトの参照がオブジェクトのインスタンスに設定されていません」が発生する。
-
[解決済み] ファイルまたはアセンブリをロードできませんでした HRESULTからの例外:0x80131040
-
[解決済み] IIS7.5で静的ファイルハンドラによってスクリプトが提供されない
-
[解決済み] 複数行のテキストボックスの複数改行
-
[解決済み] "システムが指定されたファイルを見つけられませんでした"
-
[解決済み] HttpContext.Current.Cacheはすべてのセッションで利用可能か?
-
[解決済み] のSelectedValueは項目リストに存在しないため、無効です。どのようにデバッグするのですか?
-
[解決済み] IISReset』とは何ですか?
-
[解決済み] aspnet_regiis.exeの動作について
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] リクエストの最大長を超えました。
-
[解決済み] ファイルまたはアセンブリをロードできませんでした HRESULTからの例外:0x80131040
-
[解決済み] allowDefinition='MachineToApplication' として登録されたセクションをアプリケーションレベルを超えて使用するとエラーになる。
-
[解決済み] targetFramework' 属性が認識されません。属性名は大文字と小文字を区別することに注意してください
-
[解決済み] コードビハインドでASP.NetページのURLを取得する [重複]。
-
[解決済み] エンティティフレームワーク defaultconnectionfactory
-
[解決済み] ASP.NETのボタンに画像を追加することはできますか?
-
ASP.NET図書館管理システム簡易実装ステップ
-
[解決済み] ASP.NETアプリケーションの.ashxファイルとは何ですか?
-
[解決済み] VB.netで辞書を使うには?