Asp.net测验题(一)
时间:2010-10-11 来源:Jeffrey.Sun
看下面的问题,看你能否做出正确的回答。虽然不是什么很高深的问题,但是还是可以初步检验一下在Asp.net方面的基础怎么样。
问题场景:
新建一个名为Default.aspx页面,页面很简单,只有一个文本框和一个按钮,代码如下:
- <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head runat="server">
- <title></title>
- </head>
- <body>
- <form id="form1" runat="server">
- <asp:TextBox ID="TextBox1" runat="server" Text=""></asp:TextBox>
- <asp:Button ID="Button1" runat="server" Text="Button" />
- </form>
- </body>
- </html>
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- public partial class _Default : System.Web.UI.Page
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- }
- }
浏览页面,然后在页面上右击后查看源代码:
结果如下:
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head><title>
- </title></head>
- <body>
- <form name="form1" method="post" action="Default.aspx" id="form1">
- <div>
- <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE0MDM4MzYxMjNkZL97iC4uFweZqTOgK/mfKjHCKUW1" />
- </div>
- <div>
- <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAwKMzYyyDALs0bLrBgKM54rGBi5uStZnqjDgN1MXATTGyCYoWHIV" />
- </div>
- <input name="TextBox1" type="text" id="TextBox1" />
- <input type="submit" name="Button1" value="Button" id="Button1" />
- </form>
- </body>
- </html>
上面的第8行的这个隐藏域中的值,大家应该知道就是Asp.net的ViewState,或者有人告诉过你这个东西就是ViewState。对我这个页面来说,这个ViewState现在的值是"/wEPDwULLTE0MDM4MzYxMjNkZL97iC4uFweZqTOgK/mfKjHCKUW1"。
问题如下:
我上面的这个简单页面为原始页面,我们针对这个页面做如下的几种修改,哪些修改会使得这个ViewState的值变化?
1、在原始页面上点击Button按钮,页面刷新一次后再查看页面的源代码,这个时候这个ViewState的内容有变化吗?
2、在原始页面的基础上,修改一下前台页面中控件的属性值,把文本框的文本设置为字符串"Hello",并把文本框的背景调整为"LightBlue"色,如下:
- <asp:TextBox ID="TextBox1" runat="server" Text="Hello" BackColor="LightBlue"></asp:TextBox>
刷新页面后再查看页面的源代码中的ViewState,ViewState的内容会有变化吗?
3、在原始页面的基础上,在Page_Load事件中,添加一段代码输出"HelloWorld"字符串如下:
- public partial class _Default : System.Web.UI.Page
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- Response.Write("Hello World");
- }
- }
刷新页面后再查看页面的源代码中的ViewState,ViewState的内容会有变化吗?
4、在原始页面的基础上,在Page_Load事件中添加代码如下:
- public partial class _Default : System.Web.UI.Page
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- Response.Write("Hello World");
- this.TextBox1.Text = "Hello World2";
- }
- }
刷新页面后再查看页面的源代码中的ViewState,ViewState的内容会有变化吗?
5、在原始页面的基础上,在Page_Load事件中添加代码如下(我用到了Color类,所以记得using System.Drawing):
- public partial class _Default : System.Web.UI.Page
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- Response.Write("Hello World");
- this.TextBox1.Text = "Hello World2";
- this.TextBox1.BackColor = Color.Pink;
- }
- }
刷新页面后再查看页面的源代码中的ViewState,ViewState的内容会有变化吗?
6、在原始页面的基础上,不处理Page_Load事件,在Page_Init事件中放入和5中同样的代码如下:
- public partial class _Default : System.Web.UI.Page
- {
- protected void Page_Init(object sender, EventArgs e)
- {
- Response.Write("Hello World");
- this.TextBox1.Text = "Hello World2";
- this.TextBox1.BackColor = Color.Pink;
- }
- }
刷新页面后再查看页面的源代码中的ViewState,ViewState的内容会有变化吗?
1,2,3,4,5,6这六种情况,其中哪几个会使得页面的ViewState改变?为什么?