【问题标题】:How do you get the current image name from an ASP.Net website?如何从 ASP.Net 网站获取当前图像名称?
【发布时间】:2008-09-04 21:08:28
【问题描述】:

场景:您有一个 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。
那么在加载页面的过程中,是否可以从页面属性中拉出最后使用的图片呢?

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:
    int num = 1;
    
    if(Session["ImageNumber"] != null)
    {
      num = Convert.ToInt32(Session["ImageNumber"]) + 1;
    }
    
    Session["ImageNumber"] = num;
    

    【讨论】:

      【解决方案2】:

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

      因此,在您的 Page_Load 中,您可以编写类似...

      var lastPicNum = (int)ViewState["lastPic"];
      lastPicNum++;
      
      MainPic.ImageUrl = string.Format("~/Images/{0}.jpg", lastPicNum);
      
      ViewState["lastPic"] = lastPicNum;
      

      你应该明白了。

      如果您正在编写 ASP.NET,但仍然不了解 ViewState 和 Web 表单的工作原理,您应该阅读this MSDN article

      从一开始就理解 ViewState 也有助于解决许多 ASP.NET 问题。

      【讨论】:

        【解决方案3】:

        您必须在 HiddenField 或 ViewState 或类似的地方隐藏最后一个值...

        【讨论】:

          【解决方案4】:

          如果您需要按 F5 或类似的刷新按钮将图像更改为序列中的下一个,则需要将最后一个图像 ID 或其他内容存储在服务器端存储或 cookie 中。使用 Session 变量或类似变量。

          【讨论】:

            【解决方案5】:

            这取决于您希望它保留(记住)上次查看的值的时间。我的首选是 SESSION。

            【讨论】:

              【解决方案6】:

              @chakrit

              刷新页面真的有用吗?

              我认为视图状态存储在页面上,并且必须在回发时发送到服务器,并且没有发生刷新。

              【讨论】:

                【解决方案7】:

                @John 啊抱歉,我认为您的“刷新”是指回发。

                在这种情况下,只需使用 Session 变量。

                仅供参考,我建议您使用 ViewState 字典而不是 Session,因为该变量仅在该单个页面内使用,因此不应使用会话范围的变量,这是不好的做法。

                【讨论】:

                  猜你喜欢
                  • 2010-12-11
                  • 1970-01-01
                  • 1970-01-01
                  • 2011-09-12
                  • 2014-02-09
                  • 1970-01-01
                  • 2018-06-26
                  • 1970-01-01
                  • 2019-11-23
                  相关资源
                  最近更新 更多