В настоящее время я работаю над тем, чтобы разобраться с Umbraco и использованием Razor, однако я нахожу встроенный характер кода Razor особенно сложным. По какой-то причине, когда я компилирую свое частичное представление ниже (которое выводит карусель Bootstrap на экран на странице, на которой она вызывается), я получаю следующую ошибку компиляции:
Line 3: @if (Model.Content.HasValue("bannerImages")){
Parser Error Message: The if block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup.
Однако я проверил все свои теги в Notepad ++ (поскольку это лучше для определения совпадающих тегов, чем Visual Studio), и все фигурные скобки в моем документе связаны, поэтому это заставляет меня поверить, что я могу реализовать некоторые из встроенных Razor блоки кода некорректны. Любые идеи?
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@if (Model.Content.HasValue("bannerImages")){
var bannerImagesList = Model.Content.GetPropertyValue<string>("bannerImages").Split(new string[]{","}, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse);
var bannerImagesCollection = Umbraco.TypedMedia(bannerImagesList).Where(x => x != null);
var imageCount = 0;
<div id="carousel" class="carousel slide" data-ride="carousel">
<!-- Indicators -->
<ol class="carousel-indicators">
<li data-target="#carousel" data-slide-to="0" class="active"></li>
<li data-target="#carousel" data-slide-to="1"></li>
<li data-target="#carousel" data-slide-to="2"></li>
<li data-target="#carousel" data-slide-to="3"></li>
</ol>
<!-- Wrapper for slides -->
<div class="carousel-inner">
@foreach (var bannerImage in bannerImagesCollection){
if (@imageCount < 1){
<div class="item active">
}else{
<div class="item">
}
<img src="@bannerImage.Url" alt="@bannerImage.Id" />
</div>
}
</div>
</div>
}