Динамические ценовые диапазоны, основанные на минимальной / максимальной цене фильтрации - PullRequest
0 голосов
/ 10 июля 2019

Исходя из минимальной и максимальной цены этих товаров, я хотел бы создать динамические ценовые диапазоны для своих фильтров-флажков. Например, если разница между минимальной и максимальной ценой составляет 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 будет лучшим способом реализовать это. Очевидно, что это становится очень запутанным в каждом случае, когда вам нужно рендерить все флажки. Есть ли лучший способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...