什么是一个页面指令。净
-
29-09-2019 - |
题
我研究了一个微软认证考试,而一些措辞为"内容"在examn困惑我。在 MS考试的网站, 下 发展中形式的网页, 它说,关于内容的考试...
这一目标可以包括但不限于:页指令,如视图状态,要求验证,事件的验证,MasterPageFile;ClientIDMode;
我的印象是,页面指令提到@页的关键字和关联的价值观定义@页分别属性/性质。但是,该措词的考试内容几乎暗示这一属性/性质@页的关键词是指令。
可能有人请澄清针对我?
解决方案
我认为他们的语言有点令人困惑。您是正确的,指令中的值本质上是属性。实际上,您可以将其中的大部分设置为对象模型中的属性(例如,在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的评论,我进一步研究了这一点。我相信指令属性可以描述如下。
指令上的每个属性都适用于以下目的:编译器的提示(例如CodeBehind Path),提示加载页面的提示(例如页面继承的类别),提示页面(例如MasterPageFile)和/或要在创建页面的每个实例上设置的属性(例如标题)。
其他提示
该网页指令是一个混合的性质,你可以直接设置在网页上-象本身并指示asp.net 编译器。
该网页列出的所有属性 http://msdn.microsoft.com/en-us/library/ydy4x04a.aspx.
引自页: 定义页特定(.aspx文件)属性使用的ASP.NET 页面分析程序和编译器。
""这些新的页面会显示一个列表中的所有属性,并有一个解释性的/特性:
老链路上指出的, http://msdn.microsoft.com/en-us/library/ydy4x04a.aspx 不再有用的。最新的链接,通过目标, http://msdn.microsoft.com/en-us/library/t8syafc7(v=与100).aspx 和 http://msdn.microsoft.com/en-us/library/vstudio/ydy4x04a(v=与100).aspx ,对于所有寻求这一信息。