Asp.net 丢失变量值

2024-01-20

我正在尝试在 ASP.NET 中编写我的第一个 Web 应用程序。这是我的代码:

Public Class WebForm2
Inherits System.Web.UI.Page
Public n As Integer
Public zetony As Integer
Public liczba As Boolean
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

End Sub
Private Function TextBox1_Validate(Cancel As Boolean)
    If Not IsNumeric(TextBox1.Text) Then
        MsgBox("Prosze podaj liczbe dobry uzytkowniku :)", vbInformation)
        Cancel = True
    Else : Cancel = False
    End If
    Return Cancel
End Function
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    liczba = TextBox1_Validate(liczba)
    If (liczba = False) Then
        n = Convert.ToInt32(TextBox1.Text)
        Label2.Text = n
    End If
End Sub
Protected Sub graj()
    Label2.Text = n
End Sub
Protected Sub Image1_Click(sender As Object, e As ImageClickEventArgs) Handles ImageButton1.Click
    If zetony < 2 Then
        n -= 1
        ImageButton1.ImageUrl = "red_coin.gif"
        zetony += 1
    End If
End Sub

Protected Sub Image2_Click(sender As Object, e As ImageClickEventArgs) Handles ImageButton2.Click
    If zetony < 2 Then
        n -= 1
        ImageButton2.ImageUrl = "red_coin.gif"
        zetony += 1
    End If
End Sub

Protected Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    graj()
End Sub
End Class

我的问题是,只有在 Button1_Click 上我才得到正确的值。当我尝试调用 Sub graj() 时,n 的值始终为 0。


HTTP 是无状态的。这意味着对于每个请求,该类的一个新实例WebForm2被创建。所以如果你在里面设置n的值Button1_Click当您从以下位置访问它时,它不会被保留Button2_Click因为这是一个不同的实例。

要跨请求保存数据,有多种可能性,仅举几例:

  • 将其保存在数据库中
  • 将其保存在应用程序对象中(这在所有用户之间共享:

    // setting the value
    HttpContext.Current.Application("n") = "somevalue";
    
    // Getting the value
    string test = HttpContext.Current.Application("n");
    
  • 将其保存在会话状态中(这在一个用户的所有请求之间共享):

    // setting the value
    HttpContext.Current.Session("n") = "somevalue";
    
    // Getting the value
    string test = HttpContext.Current.Session("n");
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Asp.net 丢失变量值 的相关文章

  • 通过.NET/C#发送传真

    如何在 NET 中发送传真 我们有一个传真服务器 我们需要通过它将文件传真给客户 由于我们有传真服务器 我不认为我必须在我的机器上配置传真调制解调器 对吧 它只会通过传真服务器吗 有没有好的免费 或便宜 传真 API 在我的研究中 我遇到过
  • 从一个方法返回两个变量

    下面的代码如何正确书写 public String toString int position int xOffset int yOffset String postn String format d d position 0 positi
  • 替换 ASP.NET Web 表单中的 MSWord 智能引号

    我遇到一个问题 用户在 MS Word 中编写一些大块文本 然后将其粘贴到在线表单中 这些以颠倒的形式输入数据库 我可以选择哪些选项来将这些内容替换为标准报价 这些智能引号是一个 unicode 点 您所需要的只是一个简单的 String
  • 实体框架的提供程序连接字符串是否可以替换为 web.config 中已定义的数据库连接字符串?

    我在 web config 的 connectionString 部分中定义了一个数据库连接字符串 ApplicationServices 并有 3 个实体框架连接字符串 它们的提供程序连接字符串属性与 ApplicationService
  • ASP.NET MVC 3 中未经身份验证用户的缓存主页

    我的网站有一个主页 我想为匿名用户缓存该页面 并将其设置为经过身份验证的用户的 私有 以便他们将其保存在自己的计算机上 而不是其他地方 因此 如果用户是匿名的 我想将页面保存在服务器缓存中 并使用以下命令保存在浏览器缓存中Cache con
  • VS2010调试问题

    好吧 奇怪的事情又发生在我身上了 今天早上 当我启动 ASP NET 应用程序时 对其进行了一些工作 现在当我尝试发布它时 我收到一个错误 我似乎找不到任何相关文档 Error 1 Unable to apply a change whil
  • Firefox 和 IE:从缓存检索数据时损坏数据

    我向服务器发出一个请求 如下所示 http localhost Combine aspx flag file1 js file2 js file3 js 我也尝试过这个 http localhost Combine aspx flag va
  • ASP.NET MVC 4 FileResult - 错误

    我在控制器上有一个返回 PDF 的简单操作 工作正常 public FileResult GetReport string id byte fileBytes manager GetReport id string fileName id
  • 检查域名是否可供购买 - C# [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有什么方法可以检查某个域名是否可以购买 是否有任何图书馆可以做到这一点 THanks 您可以看一下 ht
  • 必须在 ASP.NET 中单击按钮两次(在自动回发文本框之后)

    在我的页面上有
  • 预编译 ASP.NET 网站上的“JIT 时间百分比”高且波动

    拥有 150 个 dll 的 ASP NET 网站预编译的 可更新 导致 的可能原因是什么JIT 时间百分比 这通常相当高 gt 60 并且波动的应用程序预热后很长一段时间 访问所有功能 并且没有 应用程序重新启动或文件更改可能会生成新的程
  • 在哪里存储加密密钥 MVC 应用程序

    我正在使用 AES 加密 解密类 该类需要密钥值和向量值来加密和解密 MVC3 应用程序中的数据 保存记录时 我对数据进行加密 然后存储在数据库中 当我检索记录时 我在控制器中解密并将未加密的值传递给视图 我们关心的不是在数据通过网络时保护
  • 找出用户属于哪些组

    我有一个刚刚创建的 Windows 用户帐户 以 XYZ 为例 此 XYZ 属于我在计算机管理 gt 本地用户和组中创建的用户组和自定义组 因此 在属性中我看到该用户属于 2 个组 现在我想获取这些组并显示它们 有什么建议么 我已经这样做了
  • .NET Core 应用程序在 Web 服务器上本地运行,但无法通过远程浏览器访问

    我有一个 ASP NET Core 1 1 Web 应用程序 已将其发布到远程服务器 我已经在 IIS 中设置了网站 如下所示这些说明 https learn microsoft com en us aspnet core publishi
  • 标题的固定高度和更改宽度(HTML 表格)

    我需要确保表格标题的高度是固定的 并且宽度是根据标题单元格内容进行调整的 标题文本最多显示两行 我们如何使用样式来做到这一点 另外 我想确保表行的宽度与标题行的宽度相同 即标题行决定宽度 注 目前 交易部门负责人别名 是按行排列的 它需要分
  • 没有 DateAdd() 的 SSIS 表达式前一个日期

    目前正在开发一个包 它将表达式从先前的日期传递到文件名 我当前的代码如下作为字符串变量 DT WSTR 20 DATEPART YYYY Dateadd DD 1 dateadd MM datediff MM DT DATE 1900 01
  • LinkBut​​ton 在生产服务器上未触发

    这是一个很好的候选人 适用于我的机器认证计划 http www codinghorror com blog archives 000818 html 我有以下 LinkBut ton 代码
  • ASP.NET 为什么会话超时,sessionstate超时设置

    嘿 我的 web config 中有以下行
  • 如何在 ASP.Net MVC 或等效控件中构建复合控件或模板控件?

    在我们当前的 ASP Net Webforms 应用程序中 我们有几个复合 模板服务器控件 它们的存在只是为了具有共同的外观和感觉 例如 我们有一个面板控件 它有一个标题 一个与面板内容相关的按钮位置 当然还有内容 在 MVC 中如何最好地
  • 如果方法参数是 string 或 int,ASP.NET WebAPI 会抛出 404

    我对 ASP NET MVC4 WebAPI 做了一个非常简单的测试 发现了一些有趣的问题 当一个方法采用复杂类型时 它会起作用 但是当它采用 string 或 int 时 它将抛出 404 如给出的屏幕截图所示 AddProduct 可以

随机推荐