C# 如果a视图'&引用;标题「;标记具有属性";runat";还是不?
当我在ASP.NET中的应用程序中创建任何视图时,我会看到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></
<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"