Я работаю на веб-сайте Umbraco 7, где продукты фильтруются булевым.Значение Bool не может быть 0:
- Истинные = мужчины
- Ложные = женщины
Я Request.QueryString.Get("gender")
и получать true
или false
значение, которое я анализирую в subPage.GetPropertyValue<bool>("gender")
, который затем делает из продуктов, что является либо true
или false
. Эта часть отлично работает.
Однако, если у меня нет никакого QueryStrying.Get("gender")
в URL возвращает ошибку, которая говорит 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' имеет значение null, т. е. это не в строке запроса? –
@EdPlunkett: Нет, 'genderQuery' - это' string', а не 'bool?' Вообще. –
@JonSkeet Derp, спасибо. –