当我在ASP.NET中的应用程序中创建任何视图时,我看到了
<head runat="server">
如果我将其更改为
<head>
这两个条件之间有什么区别?
答案 0 :(得分:3)
如果您定义head
标记并将runat
属性设置为"server"
,则会显示页面声明中Title
属性的值。
假设您已经在代码之上定义了一个带有以下声明的页面:
MyPage.aspx :
<%@ Page title="My Website"...
我们还假设母版页的head
标签定义如下:
的Site.Master :
<head runat="server"></head>
然后生成的标记将如下所示:
<head><title>My Website</title></head>
如果您定义head
标记但未设置runat
属性,则Title
属性定义的标题将不会显示,您必须直接设置标题标记:
<head><title>My Website (Title has been set manually)</title></head>
<强>更新强>:
如果使用Visual Studio创建新的MVC项目,则主页将在asp:ContentPlaceHolder
标记中包含title
作为默认值:
<head runat="server">
<title><asp:ContentPlaceHolder ID="TitleContent" runat="server" /></title>
</head>
asp:ContentPlaceHolder
的内容将覆盖您在页面声明中设置的Title
属性的值,正如用户Yngvebn对此答案的评论中所正确指出的那样
答案 1 :(得分:0)
如果您在该部分中有一个带有相对网址的标记,它会修复src路径。例如,请考虑您可能在主页面中具有响应以下URL的头部分。
/富 /富/酒吧 /富/酒吧/巴兹
But your script src is "../scripts/script.js"
该相对路径仅对其中一个请求有效。但是通过使用head runat =“server”,ASP.NET修复它以便它适用于所有这些。