從,如果不查了一些控制,他們不回發的任何值,如複選框的那一刻,你有兩個選擇。
- 之前和之後的後知道所有控件回/或
- 用JavaScript創建控件的所有名稱,並張貼他們回來隱藏字段。
現在,在回覆中,您已將所有發佈的值顯示在HttpContext.Current.Request.Form
之間,您可以在其中閱讀所有值。
在客戶端,您可以使用簡單的javascript或jQuery創建所有輸入控件的列表並將它們發送到隱藏的輸入中。這裏有一個例子:
var inputs, index, cNames = "";
inputs = document.getElementsByTagName('input');
for (index = 0; index < inputs.length; ++index) {
cNames += "&" + inputs[index].name;
}
document.getElementById("AllControls").value = cNames;
或相同的jQuery
var cAllNames = "";
$('input').each(function() {
cAllNames += "&" + $(this).attr("name");
});
jQuery('#AllControls').val(cAllNames);
和你的頁面上,你有一個隱藏的控制像
<input type="hidden" name="AllControls" id="AllControls" />
,並在後期你把所有的名字您的控件在一行中,例如:
AllControls=&__VIEWSTATE&__EVENTVALIDATION&cbBoxTest&AllControls&Button1
在那裏你可以拆分該字符串,每個名字都與&
分開,在那裏你可以看到什麼是使用,什麼不是。您可以傳遞有關該控件的其他信息 - 就像我發送每個控件的名稱一樣。
你的 「如果他們不asp.net控制」 意味着什麼,他們是用戶控制嗎?另外,「他們甚至存在」是什麼意思?如果可能,你可以發佈代碼嗎? – Nexus23
如果它們是HTML控件,比如select,input,textarea等等...我的意思是,如果它們存在,那麼沒有被檢查的複選框(而不是asp.net服務器控件)將不會被髮布回到服務器(http://stackoverflow.com/questions/11424037/does-input-type-checkbox-only-post-data-if-its-checked)。所以我不確定代碼會如何幫助,因爲問題是處理大量已發佈值的最佳方法。 HTH。 – Wade73
您是否有可能創建一個代表您的表單域/數據結構的類。如果是這樣,那麼爲每個表單創建一個這樣的類。然後你就知道你的表單期待什麼。如果你的複選框沒有被返回,那麼它們是錯誤的。 – ChiYoung