ASP.NET变量的作用域

Razor C# 变量 Razor C# 变量是 Razor 视图中的重要组成部分,它们用于存储数据并在网页上显示这些数据。通过声明和初始化变量,可以在视图中创建动态内容。Razor 变量作用域取决于它们声明的位置,可以是整个视图或块级作用域。Razor 变量可以是任何 C# 类型,包括基本数据类型、字符串、对象和集合等。 阅读详情


ASP.NET不用于delphi等WinForm,因为桌面程序是面向一个用户,而ASP.NET是面向多个用户。

所以,当你在程序中的class下,在方法、函数前写变量是,虽然是全页变量,但只要页面刷新,这个新赋值的值都会丢失。

如:

 

public class along:System.Web.UI.Page
{
    string s="a";
    protected void Button1_Click()
{
    s+="b";
    textbox1.text=s;
}
protected void Button2_Click()
{
    s+="c";
    textbox1.text=s;
}

}

你会发现 每当你点击按钮的时候,s的值并没有重复累加,而只是从初始化的a开始。

由于我们每次刷新asp.net页面都是一个全新的对象,而不是上一次访问的对象。所以 上次页面访问时对页面中变量的改动都没有保留。遇到这个问题的时候直觉就将这个变量设 置成static,这样是可以保留住页面中变量的状态。但这个状态是针对一个客户端的(如同 session的效果)。而得到的结果是只要一个客户端改变了该值则所有的其他客户端都受到 了影响(如同Applicatin的效果)。
  究其原因这还要从Asp.net的运行机制谈起。在C/S模式软件开发过程中,我们通常不会 关心应用程序是在哪里运行的,变量存放在哪里,客户端程序就运行在客户端,服务器端程 序就运行在服务器端,一般情况下,二者除了数据库中的数据外基本没有其他共享的问题。 所以这时客户端的用户大可放心的使用static变量,因为它们就存放在客户端程序中。
  于是我们就习惯的在做B/S模式的页面时也用static变量,殊不知Asp.net中的static已 不同于C/S中的static。是因为在Asp.net中所有的用户将使用同一个static变量。这就意味 着每一个使用该页面的用户对该变量的操作将会影响到其他用户。
  解决的办法之
掌握ASP.NET Core日志记录与部署的艺术 本文深入探讨了ASP.NET Core中的日志记录和部署技巧,涵盖了如何通过结构化日志简化生产错误排查、使用作用域为日志添加属性以提高诊断效率,以及发布和部署ASP.NET Core应用程序的不同方法。文章详细介绍了日志记录的重要性,如何通过不同方式控制日志输出,以及如何在IIS和Linux环境下托管和部署应用。 阅读详情

相关推荐

页面传值---ASP.NET之5种全局变量!页面间传值方法!.

页面传值---ASP.NET之5种全局变量!页面间传值方法!.

Asp.Net作用域

1.Application:用于保存所有用户共用的数据信息。 在Asp.Net中类似的配置数据最好保存在Web.config文件中。如果使用Application对象,一个需要考虑的问题是任何写操作都要在 Application_OnStart事件(global.asax)中完成。尽管使用Application.Lock和 Application.Unlock方法来避免写操作的同步,但是它串行化了

Kc 2221

ASP.Net页面间变量值传递的方法

页面传值是学习asp.net初期都会面临的一个问题,这篇文章主要介绍了ASP.Net页面间变量值传递的方法,详细的介绍了几种方法,非常具有实用价值,需要的朋友可以参考下

ASP.NET编程中static变量作用域

在C#中,static变量表示该变量属于类,而不是类的实例。可以说是该类的所有实例共享一个static变量asp.net的页面就是一个类,我们访问一个页面。就会在服务器上实例化一个该类的实例,来响应我们的请求。“所有实例共享一个static变量” 这就意味着,所有的客户端访问到的asp.net页面中static变量都是同一个变量。   由于我们每次访问asp.net页面都是一个全新的对象,而不是我们上一次访问的对象。所以上次页面访问时我们对页面中变量的改动都没有保留。遇到这个问题的时候,很多

wwfgu00ing的专栏 1184

ASP.NET之5种全局变量!页面间传值方法!

1. 使用QueryString变量   QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。但是对于传递数组或对象的话,就不能用这个方法了。下面是一个例子:   a.aspx的C#代码 private void Button1_Click(object sender, System.Ev

-云在青天水在瓶 1565

ASP.NET之5种全局变量! 页面间传值的方法

转载自品略图书馆:http://www.pinlue.com/article/2020/03/0904/5810000440837.html 1. 使用QueryString变量   QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。但是对于传递数组或对象的话,就不能用这个方法了...

yihuliunian的博客 2477

在两个ASP.NET页面之间传递变量

 ASP.NET提供了事件驱动编程模型,使开发者简化了应用程序的总体设计,但是这个也造成了它固有的一些问题,例如,在传统的ASP里,我们可以通过使用POST方法很容易地实现页面间传递变量,同样的事情,在使用事件驱动编程模型的ASP.NET就要麻烦一些,但是我们仍然有一些方法可以实现同样的功能。笔者在这里将包含使用querystring,session变量以及server.Transfer方法来

weinideai的专栏 2017

[转]ASP.NET变量作用域

  ASP.NET不同于delphiWinForm,因为桌面程序是面向一个用户,而ASP.NET是面向多个用户。   所以,当你在程序中的class下,在方法、函数前写变量是,虽然是全页变量,但只要页面刷新,这个新赋值的值都会丢失。   如: View Code public class along:System.Web.UI.Page { string s=...

dlkaksou52717的博客 274

Asp.net中Cs文件里定义的变量

Asp.net的Cs文件中,因为Http的无状态特性,每次页面提交以后都要重新声明在Class与Page_Load之间声明的变量.在一般情况下,在此之间定义的变量作用域在整个Class文件中有效,所以在执行LinkButton2_Click后,str的值为"",而不是我们所希望的"Click",因为每次页面提交以后都要重新声明在Class与Page_Load之间声明的变量.不知大家有什么看法?

风雨飘摇不倒 1516

【CSDN 精品专栏】ASP.NET Razor 变量输出 @变量名:从入门到避坑,新手也能写对!

后厨(@{ }代码块)把数据(变量)处理好;传菜口(@符号)把处理好的 “菜品”(变量值)递到前台(HTML 页面);客人(浏览器)最终看到的,就是传菜口递出来的 “成品”。@是 Razor 的 “插值标识符”,用于在 HTML 中嵌入 C# 变量 / 表达式;@后紧跟变量名 / 表达式,无需额外分隔符;支持所有 C# 基础类型 + 自定义对象 + 集合的输出。@{// 定义自定义用户对象(后厨准备的“套餐”)Id = 1001,Name = "李四",

William_cl的博客 1181

坚持学asp.net——(八)

  循环结构:for,do...while,while,foreach...in  函数: () {//code;}; 按值传递参数: () {//code;};按引用传递参数: (ref ) {//code;}; 而且在函数调用中也要加上ref关键字。输出参数其值在调用之前没有设置,在代码运行时设置,可以在以后使用;对被调用的函数来说,这样的参数是只写的。在

流浪的妓男 1636

.NET变量生存期

Web窗体后台 cs 文件中,创建类作用域变量,在关闭页面的时候并不会消失,当 IIS 站点被关闭的时候,才会调用这个变量的析构函数 但是好像也不肯定在关闭站点才会析构,应该是外层对象析构的时候才会析构类内部对象 由于后台 CS 文件是一个部分类(partial关键字定义的类),还没找到总的类在哪里 未完待续……

佰大于的小仓库 496

Page类中的静态变量作用域

    一个asp.net页面有三个文件file.aspx、file.aspx.cs、file.aspx.designer.cs,是Page类,如果在该类中使用static变量,则会在所有用户之间共享该变量的值,一个客户端进行的修改回反映到另一个客户端的界面上。    与Application的作用域相同,而且是可以跨页面使用的。最好在普通情况下尽量使用SessionSession就像C++

sailor32731958的专栏 988
上一篇: 通过Linq来获取数据库中的所有表及其字段名称
下一篇: 某个身份证号出现多次
fengyun14
博客等级 码龄22年 40粉丝 62原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值