首先,根据第105页的指导,得到一个简单的aspx页面:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ControlsDemo.aspx.cs" Inherits="Demos_ControlsDemo" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Chapter 4: Sample-1</title>
</head>
<body>
<form id="form1" runat="server">
<div>
Your name
<asp:TextBox ID="txtName" runat="server"></asp:TextBox>
<asp:Button ID="btnSubmit" runat="server" οnclick="btnSubmit_Click" Text="Submit Information" />
<br />
<asp:Label ID="Label1" runat="server"></asp:Label>
</div>
</form>
</body>
</html>
它的cs代码文件是:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
public partial class Demos_ControlsDemo : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
Label1.Text = "your name is " + txtName.Text;
}
}
于是我们就得到了一个简单的页面:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>
Chapter 4: Sample-1
</title></head>
<body>
<form name="form1" method="post" action="ControlsDemo.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTU5MTA2ODYwOWRkJVc3Ms7u84Cy+drBXdzFag2eBqM=" />
</div>
<div>
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAwLGnoiPCQLEhISFCwLCi9reA9qTUUzxbk+AZNOt9vlYD9j+hTPj" />
</div>
<div>
Your name
<input name="txtName" type="text" id="txtName" />
<input type="submit" name="btnSubmit" value="Submit Information" id="btnSubmit" />
<br />
<span id="Label1"></span>
</div>
</form>
</body>
</html>
把Chrome的网络工具打开,随便输入些字符,按提交按钮:
这个时候返回的网页是:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>
Chapter 4: Sample-1
</title></head>
<body>
<form name="form1" method="post" action="ControlsDemo.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTU5MTA2ODYwOQ9kFgICAw9kFgICBQ8PFgIeBFRleHQFEXlvdXIgbmFtZSBpcyBZb2dhZGRkESxzWZH4blFhZoCHzxkHw7rqe5k=" />
</div>
<div>
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAwK2+P2TBgLEhISFCwLCi9reA9CWVPmvwEzcfDdFdnJTdl7nGChp" />
</div>
<div>
Your name
<input name="txtName" type="text" value="Yoga" id="txtName" />
<input type="submit" name="btnSubmit" value="Submit Information" id="btnSubmit" />
<br />
<span id="Label1">your name is Yoga</span>
</div>
</form>
</body>
</html>
现在,在Chrome的Element窗口里面,把label的ID从Label1改成LabelX:
现在修改文本框里的文字,再点击按钮提交,同时关注网络监视,没有异常。那么修改text控件的ID:
修改文本控件里的字,提交:
所以.NET对server控件所做的所有事情,都必然只能是发生在server端,而对于维护“状态”的数据,目前来看也只是完全依赖在HTML里面插入的隐藏控件。……