当我在ASP.NET中的应用程序中创建任何视图时,我会看到
<head runat="server">
如果我将其更改为
<head>
这两种情况有什么不同?
发布于 2010-08-09 19:55:03
如果在runat
属性设置为"server"
的情况下定义head
标记,则将显示页面声明中的Title
属性的值。
让我们假设您已经定义了一个页面,并在代码上添加了以下声明:
MyPage.aspx
<%@ Page title="My Website"...
我们还假设母版页的head
标记定义如下:
Site.Master
<head runat="server"></head>
然后,生成的标记将如下所示:
<head><title>My Website</title></head>
如果在没有设置runat
属性的情况下定义head
标记,则由Title
属性定义的标题将不会显示,并且您必须在标记中直接设置标题:
<head><title>My Website (Title has been set manually)</title></head>
MVC更新:如果您使用Visual Studio创建一个新的项目,母版页将默认在title
标记中包含一个asp:ContentPlaceHolder
:
<head runat="server">
<title><asp:ContentPlaceHolder ID="TitleContent" runat="server" /></title>
</head>
asp:ContentPlaceHolder
的内容将覆盖您在页面声明中设置的Title
属性值,正如用户Yngvebn对此答案的评论中所正确指出的那样
发布于 2010-08-10 08:59:05
如果部分中有一个带有相对url的标记,它会修复src路径。例如,假设您在母版页中具有响应以下URL的head部分。
/foo /foo/bar /foo/bar/baz
But your script src is "../scripts/script.js"
该相对路径仅对其中一个请求有效。但是通过使用head runat=“服务器”,ASP.NET修复了它,这样它就可以为所有人工作。
https://stackoverflow.com/questions/3437308
复制相似问题