C#-如何列出发布到ASPX页面的变量名和值

C#-如何列出发布到ASPX页面的变量名和值,c#,html,webforms,C#,Html,Webforms,我正在动态生成一个HTML表单,该表单正在提交到.aspx网页。如何在结果页面中确定提交了哪些变量名以及值是什么?使用: 请求[“VarName”].toChar(); 工作,但假设我知道所有变量名。如何获取名称和值 理想情况下,该解决方案将适用于POST和GET提交 谢谢大家! 你试过这样的方法吗: 对于post请求: foreach(string key in Request.Form.Keys ) { Response.Write ( Request.Form[key] ); }

我正在动态生成一个HTML表单,该表单正在提交到.aspx网页。如何在结果页面中确定提交了哪些变量名以及值是什么?使用: 请求[“VarName”].toChar(); 工作,但假设我知道所有变量名。如何获取名称和值

理想情况下,该解决方案将适用于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
和Request.
ServerVariables
中的每一个都是
NameValueCollection
或类似内容。你可以向每个人索要钥匙,然后从那里开始

foreach (string key in Request.QueryString.Keys)
{
    string value = Request.QueryString[key];
    // etc
}

确切地说,您需要哪些集合取决于此目的-如果只是为了诊断,我会尝试将它们全部转储。

不要读取
请求
集合,这是一个包含表单和查询字符串值,但也包含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]));
}
foreach(Request.Params.Keys中的字符串键)
{
Write(String.Format(“{0}:{1}
”,key,Request.Params[key]); }

使用
Request.Params
集合时需要小心。如果QUERYSTRING变量和FORM变量都共享键“Name”,并且具有值“Val1”和“Val2”,则
Request.Params[“Name”]
的值将是“Val1,Val2”。

您应将其用作集合。请注意,多值参数(多选)本身被转换为一个集合。在.ASPX add Trace='True'的声明中,.

上有一个示例

<%@ Page Language="VB" Trace="True" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<%@ Page Language="CS" Trace="True" AutoEventWireup="false" CodeFile="Default.aspx.cs" Inherits="_Default" %>


除了上述答案之外,如果您想要组合查询字符串、表单、服务器变量和cookie项的集合,那么最好的方法是在.ASPX add Trace='True'的声明中使用

<%@ Page Language="VB" Trace="True" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<%@ Page Language="CS" Trace="True" AutoEventWireup="false" CodeFile="Default.aspx.cs" Inherits="_Default" %>


您将能够看到表单数据、会话、应用程序数据等。

您是指“Request.QueryString[key]”吗?在我将Request.Form.keys更改为Request.Form.keys以及类似的Request.QueryString.keys之后,这一功能就发挥了作用。谢谢很抱歉我开始依赖智能感知来解决我的案件问题答案是固定的。