我让这个宏在实时服务器上愉快地运行。 WebMatrix没问题。现在WebMatrix已经将自己更新为2(刷新),它不会运行一些宏,这是其中之一: -
@{
//Check there are slider image page loaded
var theCount = @Model.Descendants("SliderImagePage").Count();
if (theCount > 0)
{
foreach (var theImagePage in Model.Descendants("SliderImagePage"))
{
var theImage = theImagePage.Media("sliderImage","umbracoFile");
if (theImagePage.IsFirst())
{
@:<div class="slide" style="background-image:url('@Html.Raw(theImage)');display:block;"></div>
} else {
@:<div class="slide" style="background-image:url('@Html.Raw(theImage)');display:none;"></div>
}
}
}
else
{
@: No Picture Image pages set up
}
}
它抱怨&#34;:&#34;在代码块的开头无效。
我在VS2010中有MVC4和Razor Extensions。据我了解,它都是有效的。任何人都可以解释为什么它不能通过验证吗?
感谢。
答案 0 :(得分:2)
foreach循环中的语句运行正常而不使用@:for output:
@{
//Check there are slider image page loaded
var theCount = @Model.Descendants("SliderImagePage").Count();
if (theCount > 0)
{
foreach (var theImagePage in Model.Descendants("SliderImagePage"))
{
var theImage = theImagePage.Media("sliderImage","umbracoFile");
if (theImagePage.IsFirst())
{
<div class="slide" style="background-image:url('@Html.Raw(theImage)');display:block;"></div>
}
else
{
<div class="slide" style="background-image:url('@Html.Raw(theImage)');display:none;"></div>
}
}
}
else
{
@: No Picture Image pages set up
}
}
答案 1 :(得分:1)
看起来你在Razor中发现了一个编译问题。有一个简单的解决方法;如果你从第3行删除'@'字符,你上面给出的代码将在Razor v1和Razor v2中编译。
我已经在CodePlex的网页团队的bug数据库中打开了一个错误,希望它将在下一个版本中得到解决。
HTH, 粘土