2010-07-17 30 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() 

THX

+0

什么*刷新*?你有哪些图像阵列?你的代码是怎样的? – 2010-07-17 07:39:18

+0

嗨 - 我添加了JS我有。但它不是服务器端,所以三个图像加载? – Tom 2010-07-17 07:49:45

回答

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 2010-07-17 08:34:59