저는 mvc 프로젝트에서 작업 중이며 각 페이지에 스폰서 이미지를 표시하려고합니다.뷰에서 정적 함수를 호출하십시오.
하지만 각보기에서 렌더링되는 공유 레이아웃 페이지에 표시하는 데 어려움이 있습니다.
나는 학교가 학생이 아닌 국가에 연결되어 있기 때문에 학생의 학교를 검색하는 도메인 서비스 클래스에 함수를 만들었습니다. 내가 그 나라를 찾았을 때, 나는 각 국가의 국가를 검색하고 그 국가는 학교의 국가와 동일합니다. 이 경우 특정 광고의 후원자를 찾아 SponsorList에 넣고 SponsorList에서 임의의 스폰서를 선택한 다음 SponsorCompany를 반환합니다. 왜냐하면 나는 각 스폰서 이미지의 이름을 회사 이름으로 변경했기 때문입니다.
이제는이 기능을 공유 레이아웃으로 부르기를 원합니다. 따라서 페이지가 렌더링 될 때마다 해당 특정 학생에게 임의의 스폰서 이미지가 표시됩니다. 하지만 공유 레이아웃을 컨트롤러 클래스가 없기 때문에 어떻게 그 함수를 호출할지 모르겠다.
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
제 제안은 '정적 메소드'를 잊어 버릴 것입니다. 올바른 MVC 패턴이 아니기 때문입니다. 비즈니스 모델의 논리가 '보기'에 없어야합니다. 'ViewModel'을 생성하고'ViewModel'에 바인드 된 간단한'PartialView'를 리턴합니다. – IamStalker