母版页的HTML Title标记中的ContentPlaceHolder的奇怪问题(MVC 2)

时间:2010-08-17 12:05:54

标签: c# asp.net-mvc-2

好吧,我确信这对我来说一定是个愚蠢的错误,但我无法找到问题所在,这让我疯狂。

我有一个母版页,其中包含:

<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>

为什么?

3 个答案:

答案 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。我强烈地键入我的母版页并以这种方式填充母版页。