我所说的就像这个网站: http://www.ernesthemingwaycollection.com
它有一个静态壁纸和一组在页面之间变化的图像,我想实现一种类似的方法,使用ASP.NET从一组图像中显示随机图像。
编辑:我希望图片在会话中保持不变,并从会话更改为另一个会话。
答案 0 :(得分:2)
您提到的网站未使用随机图片集。它们被编码到aspx页面的html端。
您可以在页面上放置一个asp Image控件。然后在页面的Page_Load函数中将图像设置为您的集合的随机图片。
protected void Page_Load(object sender, EventArgs e)
{
this.Image1.ImageUrl = "~/images/random3.jpg";
}
您可以在不同的位置存储图像集数据。您可以使用数据库并将URL存储在表中。这将允许使用SQL中的内置Random函数。或者您可以将XML文件保存到服务器,加载然后使用Random .Net类来选择一个xml节点。
我个人会推荐数据库解决方案。
编辑:因为服务器会话在20分钟后被销毁,你可能想看看使用cookies,这样你就可以看到他们看到的最后一张随机图像。
答案 1 :(得分:2)
如果您只想旋转一定数量的图像,可以使用ASP.NET AdRotator control(最后,使用它!)。
如果你想做更好的事情,考虑使用jQuery幻灯片这样的jQuery Cycle Plugin。还有一个slideshow control in the AjaxControlToolkit,很容易整合。
答案 2 :(得分:0)
string imageDir = "/images/banner/";
public static string chooseImage(string imageDir)
{
string[] dirs = Directory.GetFiles(HttpContext.Current.Server.MapPath("~/images/" + imageDir + "/"), "*.*");
Random RandString = new Random();
string fileFullPath = dirs[RandString.Next(0, dirs.Length)];
// Do not show Thumbs.db ---
string fileName = string.Empty;
do
{
fileName = System.IO.Path.GetFileName(fileFullPath);
} while (fileName.Contains(".db"));
string imgPath = "/images/" + imageDir + "/" + fileName;
return imgPath;
}
private int RandomNumber(int min, int max)
{
Random random = new Random();
return random.Next(min, max);
}