如何从ASP.Net网站获取当前图像名称?

Mat*_*t R 0 c# asp.net

场景:您有一个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";
Run Code Online (Sandbox Code Playgroud)

上述代码的问题在于使用的网页是默认网站,图像设置为1.jpg,因此加载的图像始终为2.jpg.
所以在加载页面的过程中,是否可以从页面属性中提取最后使用的图像?

cha*_*rit 5

您可以将数据存储在页面的ViewState字典中

所以在你的Page_Load中,你可以写出像......

var lastPicNum = (int)ViewState["lastPic"];
lastPicNum++;

MainPic.ImageUrl = string.Format("~/Images/{0}.jpg", lastPicNum);

ViewState["lastPic"] = lastPicNum;
Run Code Online (Sandbox Code Playgroud)

你应该明白这个想法.

如果您正在编程ASP.NET并且仍然不了解ViewState和Web表单的工作方式,那么您应该阅读这篇MSDN文章

从一开始就了解ViewState也有助于解决很多ASP.NET问题.


Joh*_*ker 5

int num = 1;

if(Session["ImageNumber"] != null)
{
  num = Convert.ToInt32(Session["ImageNumber"]) + 1;
}

Session["ImageNumber"] = num;
Run Code Online (Sandbox Code Playgroud)