【问题标题】:Bool value cannot be null布尔值不能为空
【发布时间】:2016-12-22 16:02:40
【问题描述】:

我正在开发一个 Umbraco 7 网站,该网站的产品通过布尔值进行过滤。

  • 真 = 男
  • 错误 = 女性

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

但是如果我在 URL 中没有任何 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>
    }

【问题讨论】:

  • 如果genderQuery 为空,即不在查询字符串中,您希望发生什么?
  • @EdPlunkett:不,genderQuerystring,根本不是 bool?
  • @JonSkeet Derp,谢谢。
  • "bool?gender" 将接受:null、true、false。然后检查性别是否为空。性别.hasValue()

标签: c# .net umbraco umbraco7


【解决方案1】:
 @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>
    }

【讨论】:

  • 这正是我想要的!谢谢塞廷
猜你喜欢
  • 1970-01-01
  • 2020-12-19
  • 1970-01-01
  • 2016-04-26
  • 1970-01-01
  • 2016-06-16
  • 1970-01-01
  • 1970-01-01
  • 2016-07-11
相关资源
最近更新 更多