Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果a视图'&引用;标题「;标记具有属性";runat";还是不?_C#_Asp.net Mvc - Fatal编程技术网

C# 如果a视图'&引用;标题「;标记具有属性";runat";还是不?

C# 如果a视图'&引用;标题「;标记具有属性";runat";还是不?,c#,asp.net-mvc,C#,Asp.net Mvc,当我在ASP.NET中的应用程序中创建任何视图时,我会看到 <head runat="server"> 如果我把它改成 <head> 这两个条件之间有什么区别?如果定义头标记,并将runat属性设置为“server”,页面声明中将显示Title属性的值 假设您定义了一个页面,在代码顶部有以下声明: MyPage.aspx: 然后,生成的标记将如下所示: <head><title>My Website</title></

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

<head runat="server">

如果我把它改成

<head>


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

如果定义
标记,并将
runat
属性设置为
“server”
,页面声明中将显示
Title
属性的值

假设您定义了一个页面,在代码顶部有以下声明:

MyPage.aspx:

然后,生成的标记将如下所示:

<head><title>My Website</title></head>

更新: 如果使用Visual Studio创建新的MVC项目,母版页将在
标题
标记内包含一个
asp:ContentPlaceHolder
,默认为:

<head runat="server">
    <title><asp:ContentPlaceHolder ID="TitleContent" runat="server" /></title>
</head>


如果节中有一个带有相对url的标记,它会修复src路径。例如,考虑到在主页面中有一个头段,它响应下面的URL。 /福 /foo/bar /foo/bar/baz

But your script src is "../scripts/script.js"

该相对路径仅对其中一个请求有效。但是,通过使用head runat=“server”,ASP.NET修复了它,使其适用于所有用户。

是的,这是正确的。但是,如果您也在视图中定义了标记,则会覆盖@Yngvebn中的Title=”“属性。视图不应该包含
head
标记,但是母版页应该包含,因为它是站点范围的页面模板;视图应该为内容服务。是的,我知道,但MVC中的标准设置是asp:ContentPlaceHolder作为标题,因此在site.master中,您会得到一个警告,这会覆盖页面指令中的标题。@yngWebn这正是我要写的内容,但我做了一个致命的修改,不知怎的丢失了回复“历史的前一页“鼠标与歌剧的手势。好吧,回到我的回答:是的,你在这种情况下是对的;事实上,我注意到我的答案的上一次编辑没有包括母版页
标题
标记的完整定义,尽管我在前一行提到了它。不过,我现在更新了我的答案;我已经包括了
头部的干净声明
tag@Yngvebn谢谢:)我已经更新了我的答案,添加了您关于
ContentPlaceHolder
的部分,还包括该部分的源代码,即您
<head><title>My Website (Title has been set manually)</title></head>
<head runat="server">
    <title><asp:ContentPlaceHolder ID="TitleContent" runat="server" /></title>
</head>
But your script src is "../scripts/script.js"