2016-12-22 5 views
0

私は、製品がブール値でフィルタリングされているUmbraco 7ウェブサイトで作業しています。Bool値はnullにはできません

  • = Trueの男性
  • 偽=女性

    I Request.QueryString.Get("gender")

と私はその後、 truefalseのいずれかである製品をレンダリングする subPage.GetPropertyValue<bool>("gender")に解析 trueまたは false値を受け取ります。その部分は正常に動作します。

しかし私はそれは私がこれを防ぐにはどうすればよいValue cannot be null.

を伝えるエラーを返すURLに任意のQueryStrying.Get("gender")を持っていない場合は?私は @if (Request.QueryString.Get("gender") != null)var genderQueryをラップしようとしたが、その後、私はforeach

私のコードの中からそれをGRAPすることはできません:あなたは `genderQuery`場合に発生します何をすべきかよく

@if (subPages.Count() > 0) 
    { 
     <ul> 
      @foreach (var subPage in subPages) 
      { 
       var genderQuery = Request.QueryString.Get("gender"); 

       if (subPage.Children.Count() > 0 && subPage.GetPropertyValue<bool>("gender") == bool.Parse(genderQuery)) 
       { 
        <li class="child @(CurrentPage.Name == subPage.Name ? currentClass :"")"> 

         <a href="@subPage.Url">@subPage.Name </a> 
         <a href="@subPage.Parent.Parent.Url" class="@(CurrentPage.Name == subPage.Name ? currentClass : "hide")"><i class="fa fa-close"></i></a> 
        </li> 
       } 
      } 
     </ul> 
    } 
+0

nullです。つまり、クエリ文字列にはありません。 –

+0

@EdPlunkett:いいえ、 'genderQuery'は' string'です。 'bool? 'ではありません。 –

+0

@JonSkeet Derp、ありがとう。 –

答えて

0
@if (subPages.Count() > 0) 
    { 
     <ul> 
      @foreach (var subPage in subPages) 
      { 
       var genderQuery = Request.QueryString.Get("gender"); 

       if (subPage.Children.Count() > 0 && 
        (genderQuery == null || 
      subPage.GetPropertyValue<bool>("gender") == bool.Parse(genderQuery))) 
       { 
        <li class="child @(CurrentPage.Name == subPage.Name ? currentClass :"")"> 

         <a href="@subPage.Url">@subPage.Name </a> 
         <a href="@subPage.Parent.Parent.Url" class="@(CurrentPage.Name == subPage.Name ? currentClass : "hide")"><i class="fa fa-close"></i></a> 
        </li> 
       } 
      } 
     </ul> 
    } 
+0

これはまさに私が探していたものでした!ありがとうCetin –

関連する問題