我是動態生成提交到.aspx網頁的HTML表單。如何在結果頁面中確定提交的變量名稱和值是什麼?使用: 請求[「VarName」]。toChar(); 工程,但假設我知道所有的變量名稱。我如何獲得名稱和值?C# - 如何列出發佈到ASPX的變量名稱和值
理想的情況下,該解決方案將工作POST和GET提交...
謝謝!
我是動態生成提交到.aspx網頁的HTML表單。如何在結果頁面中確定提交的變量名稱和值是什麼?使用: 請求[「VarName」]。toChar(); 工程,但假設我知道所有的變量名稱。我如何獲得名稱和值?C# - 如何列出發佈到ASPX的變量名稱和值
理想的情況下,該解決方案將工作POST和GET提交...
謝謝!
您是否嘗試過這樣的事情:
對於POST請求:
foreach(string key in Request.Form.Keys)
{
Response.Write (Request.Form[key]);
}
對於GET請求:
每個foreach(string key in Request.QueryString.Keys)
{
Response.Write (Request.QueryString[key]);
}
Request.Cookies
,Request.Form
,Request.QueryString
和請求。 ServerVariables
是NameValueCollection
或類似的。你可以詢問每個人的密鑰,然後從那裏繼續。
foreach (string key in Request.QueryString.Keys)
{
string value = Request.QueryString[key];
// etc
}
相當哪些集合,你需要將取決於這樣做的目的 - 如果它只是用於診斷,我會忍不住拋售他們全力以赴。
你的意思是「Request.QueryString [key]」,也許? – JohnFx 2009-09-29 23:29:05
謝謝,修正:) – 2009-09-29 23:30:29
不要從Request
集合讀取數據,這是一個包含表單和查詢字符串值的複合集合,還包含Cookie和服務器變量。從您想要數據的特定集合中讀取數據,即Request.Form
(用於POST)和Request.QueryString
(用於GET)。
這是你可以得到所有的鍵和值轉換爲字符串:
StringBuilder builder = new StringBuilder();
builder.AppendLine("Form values:");
foreach (string key in Request.Form.Keys) {
builder.Append(" ").Append(key).Append(" = ").AppendLine(Request.Form[key]);
}
builder.AppendLine("QueryString values:");
foreach (string keu in Request.QueryString.Keys) {
builder.Append(" ").Append(key).Append(" = ").AppendLine(Request.QueryString[key]);
}
string values = builder.ToString();
JohnFx的方法效果很好。您也可以通過使用Request.Params集合,如在包括查詢字符串,服務器變量,而進入混合cookie數據:
foreach(string key in Request.Params.Keys)
{
Response.Write(String.Format("{0}: {1}<br />", key, Request.Params[key]));
}
您需要使用Request.Params
集合時要小心。如果QUERYSTRING變量和FORM變量共享密鑰「名稱」並具有值「Val1」和「Val2」,則Request.Params["Name"]
的值將爲「Val1,Val2」。
您應該使用Request.Form作爲集合。請注意,多值參數(多選)自己變成一個集合。在this page上有一個例子。
在.aspx的聲明中添加跟蹤=「真」
<%@ Page Language="VB" Trace="True" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
除了上述的答案,如果你想查詢字符串,表單,ServerVariables和餅乾的物品,收集相結合,則最好的辦法就是用HttpRequest.Params
在聲明中。ASPX添加跟蹤=「真」
<%@ Page Language="CS" Trace="True" AutoEventWireup="false" CodeFile="Default.aspx.cs" Inherits="_Default" %>
您將可以看到表格數據,會話,應用程序數據等
這工作後,我改變Request.Form.keys到Request.Form.Keys,和Request.QueryString.Keys類似。謝謝! – NYARROW 2009-09-30 15:38:13
對不起。我已經開始依靠智能感知解決我的案例問題了。 =) 已修復答案。 – JohnFx 2009-09-30 15:55:02