2010-07-17 4 views
0

서버 ASP.NET MVC 이미지로드를 새로 고치는 방법을 알아 내려고하고 있습니다. 기본적으로 페이지의 새로 고침을 위해 회전하려는 이미지 배열이 있습니다. jQuery에서이 작업을 수행하는 방법을 알고 있지만 문제는 모든 이미지가 동시에로드된다는 것입니다. [성능면에서 싫은]ASP.NET MVC 이미지로드시 새로 고침

누구나 내가이 작업을 수행 할 수있는 방법을 알고 있습니까?

현재 JS는 다음과 같습니다하지만 난 정말 그것을 서버 측 원하는 :

function random_imglink(){ 
    var myimages=new Array() 
    //specify random images below. You can have as many as you wish 
    myimages[1]="img1.gif" 
    myimages[2]="img2.gif" 
    myimages[3]="img3.gif" 

    //specify corresponding links below 
    var imagelinks=new Array() 
    imagelinks[1]="http://www.example1.com/" 
    imagelinks[2]="http://www.example2.com" 
    imagelinks[3]="http://www.example3.com" 

    var ry=Math.floor(Math.random()*myimages.length) 

    if (ry==0) 
    ry=1 
    document.write('<a href='+'"'+imagelinks[ry]+'"'+'><img src="'+myimages[ry]+'" border=0></a>') 
} 

    random_imglink() 

들으을

+0

무엇 * 새로 고침 *를? 이 이미지 배열은 어디에 있습니까? 코드는 어떻게 생겼습니까? –

+0

안녕하세요 - 저는 JS를 추가했습니다. 하지만 서버 측이 아니기 때문에 세 이미지가 모두로드됩니까? – Tom

답변

2

도우미 작성에 대한 방법 :

private static Random _random = new Random(); 
public static MvcHtmlString RandomImage(this HtmlHelper htmlHelper) 
{ 
    var img = new TagBuilder("img"); 
    var urlHelper = new UrlHelper(htmlHelper.ViewContext.RequestContext); 
    var number = _random.Next(1, 4); 
    var src = urlHelper.Content(string.Format("~/img{0}.gif", number)); 
    img.Attributes["src"] = src; 
    img.Attributes["border"] = "0"; 
    return MvcHtmlString.Create(img.ToString()); 
} 

어느 당신은 당신의 페이지에 사용할 수 :

<%= Html.RandomImage() %> 

그리고 당신은 또한 앵커를 생성하려면 :

public static class HtmlExtensions 
{ 
    private class Image 
    { 
     public string Src { get; set; } 
     public string Href { get; set; } 
    } 

    private static Random _random = new Random(); 
    private static Image[] _images = new[] 
    { 
     new Image { Src = "img1.gif", Href = "http://www.example1.com" }, 
     new Image { Src = "img2.gif", Href = "http://www.example2.com" }, 
     new Image { Src = "img3.gif", Href = "http://www.example3.com" } 
    }; 

    public static MvcHtmlString RandomImage(this HtmlHelper htmlHelper) 
    { 
     var anchorTag = new TagBuilder("a"); 
     var randomImage = _images[_random.Next(0, _images.Length)]; 
     anchorTag.Attributes["href"] = randomImage.Href; 

     var imageTag = new TagBuilder("img"); 
     imageTag.Attributes["src"] = randomImage.Src; 
     imageTag.Attributes["border"] = "0"; 
     anchorTag.InnerHtml = imageTag.ToString(); 
     return MvcHtmlString.Create(anchorTag.ToString()); 
    } 
} 
+0

전설! 정말 고마워 :))))) – Tom

관련 문제