我正在努力制作以下剃须刀片段
<ul>
@foreach (var lang in umbraco.cms.businesslogic.language.Language.GetAllAsList())
{
var url = Model.Content.Url + "?lang=" + @lang.CultureAlias;
if (currentCulture.TwoLetterISOLanguageName.Equals(lang.CultureAlias))
{
<li class="active"><a href="@url">@lang.FriendlyName</a></li>
}
else
{
<li><a href="@url">@lang.FriendlyName</a></li>
}
}
如果我删除了foreach和if之间的变量赋值,如果它工作正常,但是否则我得到一个编译错误(比如razor解析器理解一个}作为标记并尝试渲染它)。 有什么方法可以解决这个问题吗?
答案 0 :(得分:3)
认为问题出在这一行
var url = Model.Content.Url + "?lang=" + @lang.CultureAlias;
由于您已处于“代码”模式
,因此您不需要额外的@
因此,请尝试将@lang.CultureAlias
更改为lang.CultureAlias
答案 1 :(得分:1)
你这里有@
个太多了:
var url = Model.Content.Url + "?lang=" + @lang.CultureAlias;
应该成为:
var url = Model.Content.Url + "?lang=" + lang.CultureAlias;