确定Request.Form中的控件类型

时间:2012-04-24 20:52:29

标签: c# asp.net asp.net-mvc-2

如何确定Request.Form中的控制类型?

 foreach (string x in Request.Form.Keys)
 {                                
    if (Request.Form[x] == null || Request.Form[x].ToString() == "")
    {....

我想知道每个循环,控件的类型是什么。

是文本框,列表框,隐藏字段等......

如何做到这一点?

2 个答案:

答案 0 :(得分:1)

很长一段时间,手动处理Request集合而不是强类型控件对象很有用。但是,几乎在任何情况下,迭代所有控件都可能是一个坏主意。

您可以使用Request集合中的键执行recursive FindControl()。如果FindControl未返回null,请检查控件的类型。

请注意,提交的密钥与控件的实际ID不同。它通常看起来像:

<input type="text" name="foo$bar$txtFirstName" id="foo_bar_txtFirstName" />

“name”是Request集合中的实际键,但“id”是控件的ID。这需要进一步的映射步骤。

答案 1 :(得分:0)

这是不可能的。浏览器不提交此信息。 HTTP标准不包含本质传输此信息的方法。