[英]get hidden field in C#, created by javascript
我有一個可以在我的表單中動態創建隱藏文件的JavaScript,隱藏字段的生成也是可變的,它也可以是200和1000。 我想在我的C#代碼中使用循環這些值。 我已經嘗試過下面的代碼,但它只給我第一個靜態值,但是我需要循環使用值,以便可以訪問所有值並將其存儲在SQL數據庫中
string valueOfTheHiddenField = this.Request.Form.Get("0");
此類所需代碼的示例
for each
{
string HiddenFieldvalue = this.Request.Form.Get("0");
insert into sql = value Of The HiddenField
}
以下是我正在使用的示例代碼
var form = document.forms['form1'];
for (var i = 0; i < 150; i++) {
var el = document.createElement("input");
el.type = "hidden";
el.name = "myHiddenField";
el.value = trial2;
el.id = i;
form.appendChild(el);
}
這些隱藏字段生成
<input id="0" type="hidden" name="myHiddenField" value=" Root Canal Treatment ">
<input id="1" type="hidden" name="myHiddenField" value=" Cosmetic Dentistry ">
<input id="2" type="hidden" name="myHiddenField" value=" Fillings ">
<input id="3" type="hidden" name="myHiddenField" value=" Apicectomy ">
<input id="4" type="hidden" name="myHiddenField" value=" Aesthetic Crown And Bridges ">
<input id="5" type="hidden" name="myHiddenField" value=" Bleaching ">
就像遇到問題一樣,您可以按其名稱訪問隱藏字段(甚至表單字段)值,如下所示:
string hdnCommaSeparatedString = Request.Form["myHiddenField"];
這將為您提供所有隱藏字段的逗號分隔值的字符串,您可以使用string.split(...)重載對其進行拆分以獲取這些值。
string[] hiddenValues = hdnCommaSeparatedString.Split(',');
例如, "Root Canal Treatment ,Cosmetic Dentistry ...." //This you can split using server side logic
注意如果隱藏字段中的值包含逗號,則這將中斷,並且當您嘗試使用逗號(,)在字符串中拆分字符串時,您將看到意外的字符串中斷。
例如
<input id="0" type="hidden" name="myHiddenField" value=" Root Canal, Treatment "><!--Notice a comma after Root Canal in the value & this will yield unexpected values if you string split on code behind.-->
<input id="1" type="hidden" name="myHiddenField" value=" Cosmetic Dentistry ">
編輯
根據注釋,以下是通過Request.Form獲取表單字段值的其他情況
情況1:
隱藏的字段名稱不是唯一的,例如您的情況:
string[] hiddenFieldValueList = Request.Form.GetValues("myHiddenField");
//This allows parsing of hidden/form field values having comma in them
情況2:
隱藏的字段名稱是唯一的,您可以提取以下值:
的HTML
<input id="0" type="hidden" name="myHiddenField0" value=" Root Canal, Treatment ">
<input id="1" type="hidden" name="myHiddenField1" value=" Cosmetic Dentistry ">
<input id="2" type="hidden" name="myHiddenField2" value=" Fillings, ">
<input id="3" type="hidden" name="myHiddenField3" value=" Apicectomy ">
<input id="4" type="hidden" name="myHiddenField4" value=" Aesthetic Crown And Bridges ">
<input id="5" type="hidden" name="myHiddenField5" value=" Bleaching ">
背后的代碼
var hiddenFieldValueList = Request.Form.AllKeys.Where(key => key.StartsWith("myHidden")).Select(it => Request.Form[it]).ToList();
希望對您有幫助。
為了清楚起見,您應該為每個隱藏字段創建一個唯一的名稱,因為如果您不這樣做,則返回到代碼中,該請求將僅接收一個鍵“ myHiddenField”,該鍵將保存所有值。 因此,html代碼應類似於:
<input id="0" type="hidden" name="myHiddenField0" value=" Root Canal Treatment ">
<input id="1" type="hidden" name="myHiddenField1" value=" Cosmetic Dentistry ">
<input id="2" type="hidden" name="myHiddenField2" value=" Fillings ">
<input id="3" type="hidden" name="myHiddenField3" value=" Apicectomy ">
<input id="4" type="hidden" name="myHiddenField4" value=" Aesthetic Crown And Bridges ">
<input id="5" type="hidden" name="myHiddenField5" value=" Bleaching ">
只需在JS代碼中每個名稱的末尾附加索引。
然后,在后面的C#代碼中,您應該像這樣處理已發布的表單:
var keys = Request.Form.AllKeys;
foreach (var key in keys)
{
string value = Request.Form.Get(key);
}
通過訪問已發布表單的AllKeys屬性,可以獲取所有已發布的不同鍵,它們是相應輸入字段的名稱。 因此,鍵==名稱。
您具有密鑰,因此可以通過使用Request.Form屬性的Get方法獲取值。 這接受輸入字段的索引或鍵(名稱)。
然后,一旦您獲得了價值,就可以繼續進行方案。
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.