5

私はマイクロソフト認定試験の勉強をしていますが、試験の「コンテンツ」の文言の一部が私を混乱させました。MS試験WebサイトのWebフォームページの開発」の下に、試験の内容に関して...

この目標には、次のものが含まれますが、これらに限定されません。ViewState、リクエスト検証、イベント検証、MasterPageFileなどのページディレクティブ。ClientIDMode;

ページディレクティブが@Pageキーワードを参照し、@Pageセクションで定義された関連する値が属性/プロパティであるという印象を受けました。ただし、試験内容の表現は、@Pageキーワードの属性/プロパティがディレクティブであることをほぼ意味します。

誰かが私のためにこれを片付けてくれませんか?

4

2 に答える 2

2

ページディレクティブは、ページオブジェクト自体に直接設定できるプロパティと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、この情報を求めるすべての人に。

于 2010-10-10T02:29:51.473 に答える
2

彼らの言い回しは少し紛らわしいと思います。ディレクティブ内の値は本質的にプロパティであるというのは正しいことです。実際、これらのASプロパティのほとんどは、オブジェクトモデル内(コードビハインドなど)で設定できます。

 protected override void OnInit( EventArgs e )
 {
        this.EnableViewState = true;
        this.MasterPageFile = "~/something.master";
        this.Title = "Hello World";
 }

それら、やPageなどの他にいくつかの重要なディレクティブです。これらにも精通していることをお勧めします。ImportControl

編集:Pageディレクティブから設定すると、これらの属性がどこに到達するのか興味があったので、ASP.Netキャッシュを調べました。ご存知かもしれませんが、ページが実行されると、ページはオブジェクトに変換され、次のファイルシステムにキャッシュされます。

c:\ windows \ Microsoft.Net \ Framework [version] \ Temporary ASP.Net Files \

        [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

私が興味深いと思ったのは、Pageディレクティブで設定されたようなプロパティが、これらの自動生成されたファイルに含まれていないことです。これにより、ディレクティブの完全性はリクエストごとに処理され、ページと一緒にコンパイルされないと私は信じています。

編集#2:以下のBurningIceのコメントに従って、私はこれをさらに掘り下げました。ディレクティブ属性は次のように説明できると思います。

ディレクティブの各属性は、次の1つ以上の目的に役立ちます。コンパイラへのヒント(コードビハインドパスなど)、ページをロードするためのヒント(ページが継承するクラスなど)、レンダリングするためのヒントページ(MasterPageFileなど)、および/または作成されるページの各インスタンスに設定するプロパティ(Titleなど)。

于 2010-10-10T01:55:18.947 に答える