从特定表单请求参数
本文关键字:请求 参数 表单 | 更新日期: 2023-09-27 18:02:02
这是我的代码,我想从请求中获取值但它会检索所有值,我不希望它那样做。请看一看。我正在使用c#。
foreach (string itemm in Request.Params)
{
Response.Write(itemm.Substring(itemm.LastIndexOf("$") + 1) + "<br/>");
}
这检索所有的值,但我有2个不同的形式,我只想从form1的值为例。这可能吗?我已经执行了一个搜索,但我找不到任何答案
似乎是Asp。Net中,只有一个表单元素在服务器端运行。这意味着我们可以在ASP中使用多个表单标签。Net HTML,但其中只有一个可以是服务器端。其余的表单必须是客户端HTML表单
所以所有的服务器控件和用户控件都必须嵌套在主表单中才能工作。因此,当检查回发时,服务器控件名称-值对总是来自主<form runat="server">
中的输入元素。
为了回答你最初的问题,为了区分一个帖子,你总是可以在每个表单中添加一个隐藏的输入,并在期望的值上切换/大小写。此外,您可以对输入字段
使用命名约定。aspx
<!DOCTYPE html>
<html lang="en">
<head runat="server">
</head>
<body>
<form id="form1" runat="server">
<input type="hidden" name="form.origin" value="first" />
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
</form>
<form id="form2" method="POST">
<input type="hidden" name="form.origin" value="seccond" />
<input type="submit" value="Post Second" />
</form>
</body>
</html>
代码后面
public partial class _Default : Page
{
protected void Page_Load(object sender, EventArgs e) {
switch (Request.Form["form.origin"]) {
case "first":
// first for has asp.net spesifics. Because its the main runat server form
foreach (var key in Request.Form.AllKeys) {
Response.Write(string.Format("{0}: {1}", key, Request.Form[key]) + "<br/>");
} break;
case "second":
//seccond form contains only values from the post.
foreach (var key in Request.Form.AllKeys) {
Response.Write(string.Format("{0}: {1}", key, Request.Form[key]) + "<br/>");
} break;
default:
break;
}
}
protected void Button1_Click(object sender, EventArgs e) {
}
}