我在Umbraco 7工作this website。我的问题是"性别"在左侧过滤,这是bool
(queryString)。这个bool在每个产品上设置为"这个产品是男性吗? - 对错"。
默认情况下,它设置为"所有性别",但在代码中,它实际上设置为true
,正如您在我的代码中看到的那样。我想同时展示true
和false
个产品。
bool isMale = true
应该类似于isMale = true && false
,如果有意义的话。
<div id="categoryCollection">
@{
bool isMale = true;
}
@if (!string.IsNullOrEmpty(selectedpriceRange) && selectedpriceRange.Contains("-"))
{
string[] priceArray = selectedpriceRange.Split('-');
int minPrice = 0;
int maxPrice = 0;
if (queryString.Get("gender") != null)
{
isMale = bool.Parse(queryString.Get("gender"));
}
if (priceArray.Count() == 2 && int.TryParse(priceArray[0], out minPrice) && int.TryParse(priceArray[1], out maxPrice))
{
selectedItems.AddRange(productTypes
.Where(x => x.HasValue("price") &&
x.GetPropertyValue<int>("price") > minPrice &&
x.GetPropertyValue<int>("price") < maxPrice &&
x.HasValue("gender") &&
x.GetPropertyValue<bool>("gender") == isMale)
.Skip((page - 1) * pageSize).Take(pageSize));
foreach (var item in selectedItems.Skip((page - 1) * pageSize).Take(pageSize))
{
/* If pricerange is selected */
@buildItemProduct(item);
}
}
}
else
{
if (queryString.Get("gender") != null)
{
isMale = bool.Parse(queryString.Get("gender"));
}
selectedItems.AddRange(productTypes.Where(x => x.HasValue("gender") && x.GetPropertyValue<bool>("gender") == isMale));
foreach (var item in selectedItems.Skip((page - 1) * pageSize).Take(pageSize))
{
/* If pricerange is selected */
@buildItemProduct(item);
}
}
</div>
如果您想看到我的整个代码,您可以看到here。
我不知道如何申报&#34; isMale&#34;同时显示真假产品。
答案 0 :(得分:2)
您可以使用另一个bool来保持最小变化:
//...
var bothGender = true;
if (queryString.Get("gender") != null)
{
isMale = bool.Parse(queryString.Get("gender"));
bothGender = false;
}
if (priceArray.Count() == 2 && int.TryParse(priceArray[0], out minPrice) && int.TryParse(priceArray[1], out maxPrice))
{
selectedItems.AddRange(productTypes
.Where(x => x.HasValue("price") &&
x.GetPropertyValue<int>("price") > minPrice &&
x.GetPropertyValue<int>("price") < maxPrice &&
x.HasValue("gender") &&
(bothGender || x.GetPropertyValue<bool>("gender") == isMale)) // <-- changes here
.Skip((page - 1) * pageSize).Take(pageSize));
//...
或使用枚举。