gpt4 book ai didi

.net - 什么是.NET中的页面指令

转载 作者:行者123 更新时间:2023-12-04 20:23:20 25 4
gpt4 key购买 nike

我正在为Microsoft认证考试做准备,而考试中“内容”的一些措辞使我感到困惑。在the MS exam website的“开发Web表单页面”下,它说明了考试的内容...

This objective may include but is not limited to: page directives such as ViewState, request validation, event validation, MasterPageFile; ClientIDMode;



我给人的印象是,一个页面指令引用了@Page关键字,并且在@Page部分中定义的关联值是属性/属性。但是,考试内容的措辞几乎暗示着@Page关键字的属性/属性是指令。

有人可以帮我清理一下吗?

最佳答案

我认为他们的说法有些困惑。您正确的是,指令中的值本质上是属性。实际上,您可以在对象模型中(例如,在后面的代码中)设置大多数这些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]\临时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

我发现有趣的是,这些自动生成的文件中不包含诸如Page指令中可能设置的属性。这使我相信指令的完整性是在每个请求上处理的,而不是与页面一起编译的。

编辑#2:根据下面的BurningIce的评论,我进一步研究了这一点。我相信指令属性可以描述如下。

指令上的每个属性均具有以下一个或多个目的:编译器的提示(例如,代码隐藏路径),加载页面的提示(例如,页面继承的类),呈现的提示页面(例如MasterPageFile)和/或要在创建的页面的每个实例上设置的属性(例如Title)。

关于.net - 什么是.NET中的页面指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3898664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com