在我的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>
答案 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>