__EVENTVALIDATION和__VIEWSTATE是ASP.NET中的两个隐藏字段,用于处理页面的回发(postback)和视图状态(view state)。
__EVENTVALIDATION字段用于防止页面控件事件的伪造。当页面上的控件触发事件时,浏览器会将事件名称和参数值作为请求参数发送到服务器。服务器会验证这些参数是否合法,以防止恶意用户伪造请求。__EVENTVALIDATION字段存储了服务器认可的合法事件参数,服务器会将请求参数与__EVENTVALIDATION字段中的值进行比较,如果不匹配则认为是非法请求。__VIEWSTATE字段用于保存页面的视图状态。视图状态是ASP.NET用于跟踪页面上控件的状态和值的机制。它将页面上的控件的状态和值序列化为一个字符串,并在后续的回发过程中传递给服务器。服务器在处理回发时,会根据__VIEWSTATE字段中的值还原控件的状态和值,以保持页面的连续性。在ASP.NET中,每当页面发生回发时,都会将__EVENTVALIDATION和__VIEWSTATE字段自动添加到页面的隐藏字段中。这两个字段都是由ASP.NET框架自动处理的,开发者无需手动干预。案例代码:asp.net<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>在上述代码中,有一个ASP.NET页面,包含一个文本框和一个提交按钮。当用户点击提交按钮时,将触发btnSubmit_Click事件。
csharpusing System;namespace WebApplication1{ public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { // 页面加载时执行的代码 } protected void btnSubmit_Click(object sender, EventArgs e) { string name = txtName.Text; // 处理提交按钮点击事件的代码 } }}在上述代码中,btnSubmit_Click事件处理程序会从txtName文本框中获取用户输入的值,并进行相应的处理。__EVENTVALIDATION和__VIEWSTATE是ASP.NET中的两个重要隐藏字段,用于处理页面的回发和视图状态。__EVENTVALIDATION字段用于防止页面控件事件的伪造,而__VIEWSTATE字段用于保存页面的视图状态。开发者无需手动处理这两个字段,ASP.NET框架会自动处理。通过使用这两个字段,可以确保页面的安全性和连续性。