场景:您有一个ASP.Net网页,应该在一系列图像中显示下一个图像.如果当前加载了1.jpg,则刷新应加载2.jpg.
假设我将使用此代码,您在哪里获取当前图像名称.
string currImage = MainPic.ImageUrl.Replace(".jpg", ""); currImage = currImage.Replace("~/Images/", ""); int num = (Convert.ToInt32(currImage) + 1) % 3; MainPic.ImageUrl = "~/Images/" + num.ToString() + ".jpg";
上述代码的问题在于使用的网页是默认网站,图像设置为1.jpg,因此加载的图像始终为2.jpg.
所以在加载页面的过程中,是否可以从页面属性中提取最后使用的图像?
您可以将数据存储在页面的ViewState
字典中
所以在你的Page_Load中,你可以写出像......
var lastPicNum = (int)ViewState["lastPic"]; lastPicNum++; MainPic.ImageUrl = string.Format("~/Images/{0}.jpg", lastPicNum); ViewState["lastPic"] = lastPicNum;
你应该明白这个想法.
如果您正在编程ASP.NET并且仍然不了解ViewState和Web表单的工作方式,那么您应该阅读这篇MSDN文章
从一开始就了解ViewState也有助于解决很多ASP.NET问题.
int num = 1; if(Session["ImageNumber"] != null) { num = Convert.ToInt32(Session["ImageNumber"]) + 1; } Session["ImageNumber"] = num;