好吧,我确信这对我来说一定是个愚蠢的错误,但我无法找到问题所在,这让我疯狂。
我有一个母版页,其中包含:
<head runat="server">
<title>
<asp:ContentPlaceHolder ID="TitleContent" runat="server" /> - Company
</title>
</head>
这只是我在创建母版页时由VS插入的默认HTML,我在最后添加了“ - Company”,这样我就不必在每个视图中重复该文本了。
在观点上,我有例如:
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Some title for the view
</asp:Content>
你可以想象,最终结果不是我的预期。而不是
<title>Some title for the View - Company</title>
我得到了:
<title>Some title for the View</title>
为什么?
答案 0 :(得分:5)
似乎是关于Classic ASP.Net(又名WebForms)如何工作的怪癖。 Phil Haacked on Title Tags and Master Pages是一本很棒的读物。
虽然他深入了解它的工作原理,但似乎并没有特别提到MVC。 Erik Porter的第一个评论有一个疯狂的简单解决方案:
更改
<head runat="server">
到
<head>
Tada,已修复。
答案 1 :(得分:3)
在标题标记中尝试:
<asp:ContentPlaceHolder ID="TitleContent" runat="server" /><%= " - Company" %>
我跑了一会儿,把文字放在一个代码块中清理了它。但是,如果有人有解释,我不确定为什么。
答案 2 :(得分:0)
您已关闭标题标记两次。另外,尽量不要让ContentPlaceHolder自行关闭。
在MVC中,我不记得曾经使用过ContentPlaceHolder。我强烈地键入我的母版页并以这种方式填充母版页。