2017-02-06 9 views
0

私はumbraco部分図で以下のようなコードを持っています。 {}のペアが一致しても、エラーは}}と表示されます。}期待される部分的な剃刀のエラー

@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'にエラーとして下線が引かれ、括弧の不一致エラーが表示されます。また、実際に何も変更していないコードの間違った場所を '**'で強調表示し、コード全体が「あなたのメインビューのすべての開閉括弧を比較する」というアドバイスとは関係ありません。 – GSerg

+0

class = "\" "st-text" \ "からclass =" st-text "への構文を割り当てるクラスを変更した場合は、ブラケットと一致します –

0

2つの問題があります。

まず、この:

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

は、ラインの正しい解析を防ぎ、次のことを台無しに。あなたはおそらく

class="st-text" 

またはその後

class='"st-text"' 

、すでにC#コードのコンテキスト内にあるすべての @ViewDataを意味し、(それらのすべてである)だけ ViewDataに置き換える必要があります。

関連する問題