如果Views的“head”标签具有属性“runat”,有什么区别?

时间:2010-08-09 04:16:37

标签: c# asp.net-mvc

当我在ASP.NET中的应用程序中创建任何视图时,我看到了

<head runat="server">

如果我将其更改为

<head>

这两个条件之间有什么区别?

2 个答案:

答案 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修复它以便它适用于所有这些。