在Razor视图中,如何在没有<! - ? - >的情况下插入页面标题

时间:2011-04-10 18:36:12

标签: asp.net-mvc view razor

在我的ASP.NET MVC 3 Razor布局视图中,我希望我的页面标题始终为“我的网站”,如果设置了ViewBag.Title,我想将其添加到标题中,使用连字符作为分隔符。我希望这段代码在一行

此代码失败:

<title>My Website @if( string.IsNullOrEmpty( ViewBag.Title) == false){ - @ViewBag.Title}</title>

使用

  

if块缺少结束“}”   字符。确保你有一个   为所有“{”匹配“}”字符   这个块中的字符,那个   没有“}”字符   解释为标记。

大概是因为@:假设该行的其余部分是标记。我无法使用span标签来帮助Razor,因为浏览器标题变为“我的网站 - 跨越主页范围”。

是的我可以将这个传播到两三行,但我不想这样做。这是有效的,但这是我对Razor的唯一选择吗?

<title>My Website @if( string.IsNullOrEmpty( ViewBag.Title) == false){ @: - @ViewBag.Title
}</title>

2 个答案:

答案 0 :(得分:4)

您需要使用<text> pseudo-tag

<title>My Website @if(!string.IsNullOrEmpty(ViewBag.Title)) { <text>- @ViewBag.Title</text> }</title>

答案 1 :(得分:2)

我认为你需要razor explicit text markup

 <title>My Website @if( string.IsNullOrEmpty( ViewBag.Title) == false){ <text>-</text> @ViewBag.Title}</title>