2013-09-25 3 views
0

10 개의 콘텐츠 스팟이 있습니다. 나는 그들 중 1 명을 무작위로 보여줄 페이지를 원합니다.임의의 콘텐츠 스팟 선택

'ShowContentSpots'기능을 사용해 보았습니다. 그러나 모두 &이 순환하지 않습니다.

이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

답변

1

당신은 ShowContentSpots 기능을 편집해야합니다

  1. 변화의 코드를 하나의 항목 만이 (모든) 검색 될 수 있도록 단일 항목

를 검색 할 때

  • 일부 랜덤를 추가 빠른 해결책은 다음과 같습니다

    @if (!string.IsNullOrEmpty(ContentSpotIds)) 
    { 
        var rand = new Random(); 
    
        var spotIds = ContentSpotIds.Split(',').Select(f=>new Guid(f)); 
        var spots = Data.Get<Content.ContentSpot>().Where(f=> spotIds.Contains(f.Id)).ToList(); 
        if (spots.Any()) 
        { 
         var spot = spots[rand.Next(spots.Count)]; 
    
         <div class="spots"> 
          <div class="spot"> 
           @Html.Raw(spot.Content) 
          </div> 
         </div> 
        } 
    } 
    

    이는 나의 일부임을 유의하시기 바랍니다 iginal 함수의 코드.

    var rand = new Random(); 
    

    을하고이 부분 수정 : 여기 나는 추가

    var spot = spots[rand.Next(spots.Count)]; 
    
    <div class="spots"> 
        <div class="spot"> 
         @Html.Raw(spot.Content) 
        </div> 
    </div> 
    

    이 그냥 빨리 샘플입니다. 따라서 페이지를 아주 빨리 새로 고칠 때마다 자리가 매번 바뀌지 않을 수 있습니다. 왜냐하면 우리가 페이지를 참조 할 때마다 새로운 무작위 객체를 생성하기 때문입니다.

    이렇게하려면 임의 개체를 한 번만 다른 곳으로 초기화하고이 함수에서 사용하십시오.

  • +0

    감사합니다. CMS를 통해서만 편집하고 있습니다. 어떻게 그 기능을합니까? – niico

    +0

    기능 perspective/면도기 기능/내용/ShowContentSpots. 어쩌면 좋은 접근법은 이것에 기반하여 다른 면도기 기능을 만드는 것입니다 (만들 때 어떤 기능을 기본으로 할 것인지 선택할 수 있습니다). – wysocki