我是ASP.NET新手.我刚刚检查出一个默认的ASP.NET Web应用程序.它默认带有几页(Default.aspx,About.aspx等).
我注意到Site.master文件是我为我的页面创建主要布局的文件.但我也注意到head
标签有一个runat="server"
属性.
我知道这个标签用在<asp:XXX>
标签中,但为什么在<head>
标签中???
此外,当我删除该属性,然后所有的样式都从网页上消失.所以看起来它正在做点什么.我只是不明白它到底在做什么......
那么为什么它在HTML标签上...... ??? 我没有看到任何应该在服务器上运行的代码......
<head runat="server">
<title>Hallo</title>
<link href="~/Styles/Site.css" rel="stylesheet" type="text/css" />
<!-- This part is run on the server. So why does the head tag
also need a runat=server ?? -->
<asp:ContentPlaceHolder ID="HeadContent" runat="server">
</asp:ContentPlaceHolder>
</head>
Run Code Online (Sandbox Code Playgroud)
xyp*_*pho 34
您问为什么在runat="server"
从<head>
元素中删除样式时不再应用样式.
很简单:通过在服务器端运行,解析器将使用应用程序的根路径替换~/
样式表声明<link href="~/Styles/Site.css" rel="stylesheet" type="text/css" />
.
这~
在URL中是非法的.因此,如果解析器没有替换它,则不会找到该文件,因此不会应用样式表.
哦,顺便说一句,runat="server"
在<head>
元素上设置属性将强制所有子元素在服务器上运行,这就是为什么<link>
元素在服务器上运行.
Joe*_*Joe 24
head元素包含一个runat="server"
属性,表示它是服务器控件(而不是静态HTML).所有ASP.NET页面都派生自Page类,该类位于System.Web.UI命名空间中.此类包含一个Header属性,用于提供对页面区域的访问.使用Header属性,我们可以设置ASP.NET页面的标题或向渲染部分添加其他标记.然后,可以通过在页面的Page_Load
事件处理程序中编写一些代码来自定义内容页面的元素.
' Programmatically add a <meta> element to the Header
Dim keywords As New HtmlMeta()
keywords.Name = "keywords"
keywords.Content = "master page,asp.net,tutorial"
Page.Header.Controls.Add(keywords)
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅使用VB.NET在ASP.NET中指定元标记.
Dav*_*d W 14
ASP.NET中的runat ="server"标记允许将大多数HTML元素转换/处理为服务器端控件,您可以在生成时通过代码进行操作.一些控件具有显式实现,其他控件只是恢复为通用控件实现.
xan*_*ded 10
该runat
属性基本上告诉ASP.Net它需要解析元素,它的属性以及它作为服务器控件的内容.在服务器上启用要执行的代码以配置响应.
没有它,该<head>
部分中包含的任何子控件都不会被解析.因此,任何动态head
包括,标题操作或任何其他服务器控件将不被解释.
归档时间: |
|
查看次数: |
73197 次 |
最近记录: |