2017-02-06 4 views
0

아래와 같이 코드가 부분적으로 보입니다. {} 쌍이 일치하더라도 {} 예상 오류가 표시됩니다.} 예상 부분보기 면도기 오류

@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> 

    } 
} 


} 

코드의 문제점은 무엇입니까? 누구든지 똑같은 문제를 해결할 수 있습니까? 내가 어디서 잘못한거야? 나는 이것 뒤에 많은 것을 보냈다.

답변

0

나는이 문제를 해결했다. 그것은 코드와 렌더링 블록을 믹싱하고있었습니다 ... 그래서 여기에 해결책이 있습니다.

@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> 

} 
} 
-1

는 주보기의 개폐 브래킷을 모두 비교합니다.

@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> 

    } 
} 
} 
+0

왜 마이너스 등급입니까? 이것은 작동하고 있습니다. 나는 그것을 검사했다. –

+0

아니요, 확인하지 않았습니다. 'else' 블록 전체가 코드로 강조 표시되지 않고, 모든 @ViewData's는 오류로 밑줄이 그어져 있고 괄호 불일치 오류가 표시됩니다. 또한 실제로 ** 아무것도 변경하지 않은 코드의 잘못된 위치를'**'로 강조했으며, 전체 코드는 "기본보기의 모든 시작 및 끝점 괄호 비교"에 대한 조언과는 아무런 관련이 없습니다. – GSerg

+0

class = "\" "st-text"\ "에서 class ="st-text "로 구문을 할당하는 클래스를 변경하면 브래킷 –

0

두 가지 문제가 있습니다.

첫째,이 :

class="\""st-text"\" 

이 라인의 올바른 해석을 방지하고 다음을 망쳐 놨어요. 당신은 아마

class="st-text" 

또는 다음

class='"st-text"' 

, 이미 C# 코드의 맥락에서 모든 @ViewData 의미, (그들 모두입니다) 단지 ViewData로 교체해야합니다.