Bool值不能为null

时间:2016-12-22 16:02:41

标签: c# .net umbraco umbraco7

我正在开发一个Umbraco 7网站,用布尔值过滤产品。

  • True =男性
  • 错误=女性

Request.QueryString.Get("gender")并收到truefalse值,我将其解析为subPage.GetPropertyValue<bool>("gender"),然后呈现truefalse的产品{1}}。那部分工作正常。

然而如果我在网址中没有任何QueryStrying.Get("gender"),则会返回错误消息,告知Value cannot be null.

如何防止这种情况发生?我尝试用{包装var genderQuery @if (Request.QueryString.Get("gender") != null)然后我无法从foreach

中抓取它

我的代码:

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

1 个答案:

答案 0 :(得分: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>
    }