Search code examples
razorsyntax-errorpartial-viewsumbraco7

} expected partial view razor error


I have code as below in umbraco partial view. Even though { } pairs matches, it shows the error i.e. } expected.

@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{  
var langstr = "All";
var pageSize = 6;
var max_pages=0;
try
{
    if (@ViewData["storylang"] == null)
    {
        langstr = "";
    }
    else
    {
        langstr = @ViewData["storylang"].ToString();
    }
}
catch (Exception ex)
{
    langstr = "";
}

var pageIndex = (int)@ViewData["page_index"]; 
dynamic selected;

if (@ViewData["curpage"] != null)
{

    var id = (int)@ViewData["curpage"];
    var currentNode = Umbraco.TypedContent(id);
    selected = currentNode.Children.Where("Visible");


   if(langstr != ""){
        selected = currentNode.Children.Where("Visible").Where("language=\"" + @langstr + "\"");
        max_pages = currentNode.Children.Count();

        <ul>
            @foreach (var story in selected.Take(pageIndex * pageSize))
            {

               <li class="col-lg-3 col-md-3 col-sm-6 col-xs-12"><a href="@story.Url" class="\""st-text"\">@story.Name</a></li>
            }
        </ul>

    }

}
else
{
    selected = CurrentPage.Children.Where("Visible");
    max_pages = CurrentPage.Children.Count();
    if(selected.Any()){
        <ul>
            @foreach (var story1 in selected.Take(pageIndex * pageSize))
            {
                <li class="col-lg-3 col-md-3 col-sm-6 col-xs-12"><a href="@story1.Url" class="st-text">@story1.Name</a></li>
            }
        </ul>

    }
}


}  

What is the issue with code? Can anyone solve the same? Where am I wrong? I have spend a lot behind this.


Solution

  • I solved the issue. It was mixing code and rendering blocks... so here is the solution.

    @inherits Umbraco.Web.Mvc.UmbracoTemplatePage
    @{  
    var langstr = "All";
    var pageSize = 6;
    var max_pages=0;
    try
    {
        if (ViewData["storylang"] == null)
        {
            langstr = "";
        }
        else
        {
            langstr = ViewData["storylang"].ToString();
        }
    }
    catch (Exception ex)
    {
        langstr = "";
    }
    
    var pageIndex=1;
    if(ViewData["page_index"]!=null)
    {
    pageIndex=   (int)@ViewData["page_index"]; 
    }
    dynamic selected;
    }
    
    @if (ViewData["curpage"] != null){
    
    var id = (int)ViewData["curpage"];
    var currentNode = Umbraco.TypedContent(id);
    selected = currentNode.Children.Where("Visible");
    
    
    if(langstr != ""){
        selected = currentNode.Children.Where("Visible").Where("language=\"" + @langstr + "\"");
        max_pages = currentNode.Children.Count();
        <ul>
            @foreach (var story in selected.Take(pageIndex * pageSize))
            {
    
                <li class="col-lg-3 col-md-3 col-sm-6 col-xs-12"><a href="@story.Url" class="st-text">@story.Name</a></li>
            }
        </ul>
    
    }
     else{
        selected = currentNode.Children.Where("Visible");
        max_pages = currentNode.Children.Count();
        <ul>
            @foreach (var story in currentNode.Children.Where("Visible").Take(pageIndex * pageSize))
            {
    
                <li class="col-lg-3 col-md-3 col-sm-6 col-xs-12"><a href="@story.Url" class="st-text">@story.Name</a></li>
            }
        </ul>
    }
    }
     else
    {
    selected = CurrentPage.Children.Where("Visible");
    max_pages = CurrentPage.Children.Count();
    if (selected.Any())
    {
            <ul>
                @foreach (var story in selected.Take(pageIndex * pageSize))
                {
                    <li class="col-lg-3 col-md-3 col-sm-6 col-xs-12"><a href="@story.Url" class="st-text">@story.Name</a></li>
                }
            </ul>
    
    }
    }