Inspeksjon
Vi lager en enkel vevside med et tekstfelt, en knapp og et par placeholdere for å ha et sted å rapportere. Siden, Default.aspx, er slik:
<%@ Page Language="C#" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!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 id="Head1" runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server" method="post">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button"
OnClick="Button1_Click" />
<br />
<br />
<br />
<asp:Label ID="LabelHead" runat="server" Text="Header"></asp:Label>
<br />
<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
<br />
<br />
<br />
<asp:Label ID="LabelVals" runat="server" Text="Content"></asp:Label>
<br />
<asp:PlaceHolder ID="PlaceHolder2" runat="server"></asp:PlaceHolder>
</div>
</form>
</body>
</html>
Du kan eksperimente med method-attributten i form-elementet til get eller post.
På tjenersiden plukker vi opp en postback slik:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections.Specialized;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
// show headers
dumpCollection(Request.Headers, PlaceHolder1);
// show which method
LabelVals.Text = Request.HttpMethod;
if (Request.HttpMethod.ToLower().CompareTo("get") == 0)
{
// experiment with other collections
dumpCollection(Request.Params, PlaceHolder2);
}
else if (Request.HttpMethod.ToLower().CompareTo("post") == 0)
{
// experiment with other collections
dumpCollection(Request.Params, PlaceHolder2);
}
}
}
protected void dumpCollection(NameValueCollection coll,
PlaceHolder place)
{
HtmlGenericControl tab =
new HtmlGenericControl("table");
String[] keys = coll.AllKeys;
String result = "";
for (int ix = 0; ix < keys.Length; ix++)
{
result += String.Format(@"<tr>
<td valign=""top"">{0}</td>
<td valign=""top"">{1}</td>
</tr>",
keys[ix], coll[keys[ix]]);
}
tab.InnerHtml = result;
place.Controls.Add(tab);
}
protected void Button1_Click(object sender, EventArgs e)
{
// whatever you want to test
}
}
Du kan bruke dette eksemepelet som en testbenk for å test ut andre metoder i Request-objektet.