基于这些商品的最低和最高价格,我想为我的复选框过滤器创建动态价格范围。例如,如果最低价格和最高价格之间的差为10美元,我希望使用2个范围过滤器(“ $ 1-5”和“ $ 5及以上”)
我当时正在考虑进行开关案例声明,但是不知道如何在之后将价格范围实现为过滤器的价格范围。
@{var priceDifference = @Model.MaxPrice - @Model.MinPrice; }
@switch (priceDifference)
{
case int n when (n > 0 && n < 10):
n = 2;
break;
case int n when (n < 25):
n = 3;
break;
case int n when (n < 50):
n = 4;
break;
case int n when (n > 100):
n = 5;
var priceIncrement = priceDifference / n;
<div id="priceFilter">
<label class="pOne">
<input type="checkbox" value="" min="1" max="@priceIncrement">
Under $@priceIncrement
</label>
<label>
<input type="checkbox" value="" min="@((priceIncrement))" max="@((priceIncrement) * 2)">
$@((priceIncrement)) to $@((priceIncrement) * 2)
</label>
<label>
<input type="checkbox" value="" min="@((priceIncrement) * 2)" max="@((priceIncrement) * 3)">
$@((priceIncrement) * 2) to $@((priceIncrement) * 3)
</label>
<label>
<input type="checkbox" value="" min="@((priceIncrement) * 3)" max="@((priceIncrement) * 4)">
$@((priceIncrement) * 3) to $@((priceIncrement) * 4)
</label>
<label>
<input type="checkbox" value="" min="@((priceIncrement) * 4)" max="@Model.MaxPrice">
Over $@((priceIncrement) * 4)
</label>
</div>
break;
}
如果最小/最大价格差超过$ 100,我想要5个范围过滤器。假设最小/最大价格差为150美元,使用价格差除以5个范围,得到的增量为30美元。因此,范围应为(低于30美元,31-60、61-90、91-120和高于120美元)。
不确定switch语句是否是实现此目的的最佳方法。显然,当您必须渲染所有复选框时,这在每种情况下都非常混乱。有更好的方法吗?