当前位置: 代码迷 >> 综合 >> C# WebForm
  详细解决方案

C# WebForm

热度:96   发布时间:2024-01-09 03:42:52.0

什么是WebForm

WebForm诞生于2002年

WebForm是微软开发的一款产品,它将用户的请求和响应都封装为控件。

WebForm负责封装用于用户端显示的数据。

在EasyJWeb中,WebForm是一个非常重要,也是使用最为频繁的对象,他充当了在视图及程序之间传输、处理数据的媒介。

常用方法

1、WebForm中包含了视图页面中传输进来的数据,可以通过Request.Form.Get("键名")的方式来读取这些数据。由于提交过来的form表单只有只读属性,说以只能使用Get方法获取表单中的值,而不能添加修改表单里面的值。

2.如果需要更多的用法,请参考EasyJWeb的教程;

WebForm控件

HTML控件
asp .net将HTML控件当做普通字符串渲染到浏览器端(不做任何处理)

asp .net控件
经过asp .net高度封装的控件(运行在服务器端/渲染到浏览器端)

HTML控件
运行在服务器端/渲染到浏览器端/部分封装(属性多为HTML属性)
与asp .net控件相比优点: ①操作方便②会对虚拟路径 id→ClientID进行处理


WebForm控件的运行

点击ASP按钮会先执行Page_Load事件,然后才会去执行相应的Button_Click()事件。

WebForm的一个关键点就是PostBack,无论你点击哪一个ASP.NET服务器按钮都会回发到服务器端。而Html控件除非点击submit控件其余是不会回发的。

但是也可以设定点击的控件是否需要回发的服务器端。如果设置ASP.NET的控件AutoPostBack="false"那么点击这个按钮是不会回发到服务器端的,同样不会造成页面刷新。

protected void Page_Load(object sender,EventArgs e)

{

if(!Page.ISPostBack)

{

//TODO:界面初始化工作,如果不在这里面那么每次点击按钮回发的时候,都会先把这里面的方法执行一次,可能会破坏提交过来表单数据准确性和数据完整性。

}

}

WebForm优点

1.编写简便,所看见的页面就是最后运行的界面,提高了开发效率。

2.支持事件模型开发。有丰富的服务器组件。   //ASP.NET服务器控件和javascript都事件模型,事件源将事件发送给一个或多个监听器,监听器只要接收到事件,监听器将处理这些事件。

3.控件丰富。

WebForm缺点

1.封装太强,很多底层的东西初学者不是很明白。

2.自定义控制不灵活。

3.ViewState处理。

这里要讲出ViewState的使用中对于开发过程中肯定是非常的方面可以像Session一样的在客户端存放一些零时数据和变量,因为他耗费的服务器资源较少(与Application和Session相比)。默认情况下.NET系统默认对状态数据进行维护,并且适用于任意浏览器。

但是在出现他之后随之引起的问题,首先性能问题,用户显示页和发送页时的速度仍然可能减慢。设备限制。移动设备可能没有足够的内存容量来存储大量的视图状态数据。潜在的安全风险。视图状态存储在页上的一个或多个隐藏域中。虽然视图状态以哈希格式存储数据,但它可以被篡改。

使用WebForm一些小技巧

labTitle.Text = value.ToString().Trim().Replace(System.Environment.NewLine,"<br />");//让输入框中的换行转换成为一个网页显示的回车符号。

Response.Redirect(Request.Url.ToString()); //表示通知浏览器需要刷新本页

以流形式下载文件首先需要把Response.Clear();//清除Response中的数据,如果不清除Response里面的遗留数据可能会导致下载的文件存在乱码。

WebForm前台JS调用后台代码

1.后台要被调用的函数ss()
public string ss()
{
return("a");
}
2.前台js调用示例:
<script language=javascript>
var a = "<%=ss()%>";
alert(a);
</script>