我试图找出如何在刷新时执行服务器ASP.NET MVC图像加载。基本上,我有一个图像阵列,我想在页面刷新时旋转。我知道如何在jQuery中执行此操作,但问题是所有图像同时加载[这在性能方面很糟糕]
有谁知道我怎么能这样做?
目前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 :(得分: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());
}
}