2012-04-24 46 views
2

如何確定Request.Form中的控件類型?確定Request.Form中的控件類型

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

我想知道每個循環,什麼是控制類型。

它是一個文本框,列表框,一個隱藏字段等等

如何才能做到這一點?

+0

你有什麼理由需要了解它嗎? – 2012-04-24 20:54:08

+2

http://stackoverflow.com/questions/1788490/c-how-can-i-iterate-through-all-checkboxes-on-a-form – corn3lius 2012-04-24 20:55:50

+3

@ corn3lius:我不明白這與這個問題有什麼關係。 OP想要每個Request.Form.Key的控制類型。 – 2012-04-24 20:57:42

回答

1

一段時間後,手動使用Request集合而非強類型控制對象很有用。但是,遍歷所有控件在幾乎所有情況下都可能是一個糟糕的主意。

您可以使用Request集合中的鍵執行recursiveFindControl()。如果FindControl未返回空值,請檢查控件的類型。

請注意,提交的密鑰與控件的實際ID不同。它通常看起來像:

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

「名」是請求集合中的實際關鍵,但「ID」是控件的ID。這需要進一步的映射步驟。

0

這是不可能的。瀏覽器不提交此信息。 HTTP標準不包含本質上傳輸此信息的方式。