Я новичок в ASP.net MVC.
Веб-сайт, который я изменяю, имеет раскрывающийся список под названием «сайт», и пользователи могут изменить сайт, тогда строки продаж сайта будут отображаться соответственно.
Теперь мой клиент хочет, чтобы раскрывающийся список «сайт» включал «Все сайты», поэтому при выборе «Все сайты» будут отображаться все продажи на всех сайтах.
Может ли кто-нибудь подсказать мне, что мне делать? Следует ли мне изменить сопоставление таблиц, чтобы каждая продажа всегда указывала на реальный сайт и фиктивный сайт под названием «Все сайты»?
Спасибо B





На мой взгляд, нет правильного способа сделать это. Но для меня это похоже на «отчет». Пользователь фактически выбирает фильтр.
Таблицу менять не стоит, можно подвести итоги на C# или создать представление
Вы можете создать функцию с дополнительным параметром, который поможет нам решить, должны ли мы показывать продажи всех сайтов или продажи только выбранного сайта.
Функция будет выглядеть примерно так:
public IEnumerable<Sale> GetSales(int? id)
{
if (id != null)
{
var salesBySite = getSalesBySite((int)id);
return salesBySite;
}
else
{
var salesOfAllSites = getAllSales();
return salesOfAllSites ;
}
}
В раскрывающемся списке все параметры должны иметь значения как идентификаторы соответствующего сайта, но параметр «AllSites» не должен иметь значения или пустого значения.
Когда пользователь выбирает любой сайт из раскрывающегося списка, идентификатор будет передан функции GetSales. Если пользователь выберет AllSites из раскрывающегося списка, тогда в функцию не будет передан идентификатор, функция вернет продажи всех сайтов.
Вы можете добавить новый элемент с индексом 0 в вашу коллекцию списков, которая связывает раскрывающийся список. Затем на вашем уровне данных добавьте условие, чтобы игнорировать предложение where, где идентификатор сайта равен 0.