I'm working on an Umbraco 7 website where products are being filtered by a boolean.
I Request.QueryString.Get("gender")
and recieve a true
or false
value that I parse into the subPage.GetPropertyValue<bool>("gender")
which then renders out the products that is either true
or false
. That part works fine.
However if I do NOT have any QueryStrying.Get("gender")
in the URL it returns an error that tells the Value cannot be null.
How do I prevent this from happening? I tried wrapping the var genderQuery
with a
@if (Request.QueryString.Get("gender") != null)
but then I can't grap it from inside the foreach
My code:
@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>
}
@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>
}