Я работаю над проектом mvc и хочу отображать спонсорство на каждой странице.Call static function in view mvc
Но у меня возникли трудности с отображением их на общей странице макета, которая отображается с каждым видом.
Я создал функцию в моем классе обслуживания домена, где я искал школу ученика, потому что школа связана со страной, а не с учеником. Когда я получил эту страну, я просматриваю страны каждого объявления, где countryId соответствует стране countryId. Когда это так, я ищу спонсора этого конкретного объявления, помещаю его в список спонсоров, выбираю случайного спонсора из этого списка спонсоров и возвращаю спонсорскую компанию (потому что я переименовал каждое спонсорское оформление в название компании).
Теперь я хочу вызвать эту функцию в общий макет, поэтому каждый раз, когда страницы отображаются, для этого конкретного ученика отображается случайное спонсорское изображение. Но я не знаю, как назвать эту функцию, потому что общий макет не имеет класса контроллера.
public String advertsForCountry()
{
String studentSchool = finder.getLoggedStudent().SchoolId;
int studentCountry = db.Schools.Find(studentSchool).CountryId;
List<Sponsor> sponsorsForStudent = new List<Sponsor>();
List<Advert> adverts = db.Adverts.ToList();
foreach(Advert adv in adverts)
{
foreach(Country cntry in adv.Countries)
{
if(cntry.CountryId == studentCountry)
{
sponsorsForStudent.Add(adv.Sponsor);
}
}
}
Random random = new Random();
int randomSP = random.Next(0, sponsorsForStudent.Count()-1);
string sponsorAdvert = sponsorsForStudent.ElementAt(randomSP).SponsorCompany;
return sponsorAdvert;
}
К сожалению, английский не является родным.
Рассмотрите возможность создания детского мероприятия. – SLaks
Мое предложение было бы забыть о 'static method', потому что это не правильный шаблон' 'MVC '', логика бизнес-модели не должна находиться в' View'. Создайте 'ViewModel', затем верните простой' PartialView', привязанный к этому 'ViewModel'. – IamStalker