.NETのページ指令とは何ですか
-
29-09-2019 - |
質問
私はMicrosoft認定試験のために勉強していますが、試験の「コンテンツ」の文言のいくつかは私を混乱させました。の MS Exam Webサイト, 、 下 Webフォームページの開発, 、試験のコンテンツに関して...
この目的には、以下が含まれますが、これらに限定されません。ViewState、要求の検証、イベント検証、MasterPageFileなどのページディレクティブ。 clientIdMode;
私は、ページ指令が@Pageキーワードを参照し、@Pageセクションで定義されている関連値が属性/プロパティであるという印象を受けていました。しかし、試験内容の文言は、 @Pageキーワードの属性/プロパティがディレクティブであることをほぼ意味します。
誰かが私のためにこれを片付けてくれませんか?
解決
彼らの言葉遣いは少し混乱していると思います。指令内の値が本質的にプロパティであることが正しいです。実際、これらのほとんどをオブジェクトモデル内のプロパティとして設定できます(例:CodeBehind)。
protected override void OnInit( EventArgs e )
{
this.EnableViewState = true;
this.MasterPageFile = "~/something.master";
this.Title = "Hello World";
}
彼らの それは さらにいくつかの重要な指令 Page
, 、 そのような Import
と Control
. 。これらにも精通することをお勧めします。
編集:ページディレクティブから設定されたときにこれらの属性がどこで終わるか興味があったので、ASP.NETキャッシュを見てみました。おそらくご存知のように、ページが実行されると、オブジェクトになり、ファイルシステムにキャッシュされます。
c: windows microsoft.net framework [バージョン] 一時的なasp.netファイル
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
private void @__BuildControlTree(content_shared_toolbarcontrol_ascx @__ctrl) {
System.Web.UI.IParserAccessor @__parser = ((System.Web.UI.IParserAccessor)(@__ctrl));
#line 1 "C:\dev\Web.UI\Content\Shared\ToolbarControl.ascx"
@__parser.AddParsedSubObject(new System.Web.UI.LiteralControl("\r\n<div class=\"toolbar\">\r\n "));
#line default
#line hidden
global::System.Web.UI.HtmlControls.HtmlGenericControl @__ctrl1;
#line 1 "C:\dev\Web.UI\Content\Shared\ToolbarControl.ascx"
@__ctrl1 = this.@__BuildControldivDelete();
#line default
#line hidden
#line 1 "C:\dev\Web.UI\Content\Shared\ToolbarControl.ascx"
@__parser.AddParsedSubObject(@__ctrl1);
#line default
#line hidden
#line 1 "C:\dev\Web.UI\Content\Shared\ToolbarControl.ascx"
@__parser.AddParsedSubObject(new System.Web.UI.LiteralControl("\r\n <div class=\"toolbarSpacer\"></div>\r\n <div class=\"toolbarButton\">"));
et cetera
私が興味深いと思ったのは、ページディレクティブに設定される可能性のあるプロパティがこれらの自動生成ファイルに含まれていないことです。これにより、その完全性の指令が各リクエストで処理され、ページとともにコンパイルされていないと信じるようになります。
編集#2:以下のBurningiceのコメントごとに、私はこれをさらに掘り下げました。指令属性は次のように説明できると思います。
指令の各属性は、次の目的の1つ以上を提供します。コンパイラ(CodeBehindパスなど)へのヒント、ページをロードするヒント(ページが継承するクラスなど)、レンダリングするヒントページ(MasterPageFileなど)、および/または作成されたページの各インスタンス(タイトルなど)に設定するプロパティ。
他のヒント
ページディレクティブは、Page-Object自体とASP.NETコンパイラへの手順に直接設定できるプロパティの組み合わせです。
このページには、すべてのプロパティのリストが表示されます http://msdn.microsoft.com/en-us/library/ydy4x04a.aspx.
ページからの引用: ASP.NETページパーサーとコンパイラで使用されるページ固有の(.aspxファイル)属性を定義します。
""これらの新しいページには、すべてのプロパティのリストと、プロパティ/属性の説明が表示されます。
上記の古いリンク、 http://msdn.microsoft.com/en-us/library/ydy4x04a.aspx 、もはや役に立ちません。最新のリンクは、目的によって、です http://msdn.microsoft.com/en-us/library/t8syafc7(v=vs.100).aspx と http://msdn.microsoft.com/en-us/library/vstudio/ydy4x04a(v=vs.100).aspx 、この情報を求めているすべての人のために。