2014-04-07 96 views
0

字典一些PARAMS我想從Request添加到來自請求

我從Request.Params所有文字PARAMS需要得到一些PARAMS中包含名爲「txt」我有更多類型的文本結構:

"ctl00$cphMain$repDelTypes$ctl00$ucDel$txtPhone" 
"ctl00$cphMain$repDelTypes$ctl00$ucDel$txtPhone2" 
"ctl00$cphMain$repDelTypes$ctl00$ucDel$txtPhone3" 
"ctl00$cphMain$repDelTypes$ctl00$ucDel$txtAdr1" 
"ctl00$cphMain$repDelTypes$ctl00$ucDel$txtAdr2" 
"ctl00$cphMain$repDelTypes$ctl00$ucDel$txtAdr3" 

如何獲取值「TXT」

var dictionary = new Dictionary<string, string>(); 

foreach (var key in Request.Params.AllKeys) 
{ 
     if (key.ToString().Contains("txt")) 
       { 
       // add to dictionary name and value 
       // dictionary.Add("name", "val"); 
       } 
} 
+0

恕我直言,因爲你的詞典依賴於控制的ID,這是不是一個很好的形式給出。如果您或您的同事忘記了這個問題,這可能會在未來導致嚴重的錯誤。 –

+0

這種方法很容易出錯。 – aevitas

回答

1

你問如何添加到字典之後的所有文字?

var dictionary = new Dictionary<string, string>(); 
foreach (var key in Request.Params.AllKeys) 
{ 
    if (key.ToString().Contains("txt")) 
    { 
      //get the text after "txt" 
      var index = Request.Params[key].LastIndexOf("txt"); 
      var val = Request.Params[key].SubString(index); 
      Dictionary.Add(key, val); 
    } 
} 
+0

我需要在「txt」添加到字典和值後的文本 – Alex

+0

我已更新我的答案 – DLeh

+0

錯誤無法從位置Split(「txt」)[']'字符串'轉換'[1]; – Alex

-1
var dictionary = new Dictionary<string, string>(); 

foreach (var key in Request.Params.AllKeys) 
{ 
     if (key.ToString().Contains("txt")) 
     { 
     // add to dictionary name and value 
     dictionary.Add(key.Split(new string[]{"txt"}, StringSplitOptions.None)[1], Request.Params[key]); 
     } 
} 
+0

無法從位置Split(「txt」)[1]上的'字符串'轉換爲'char []'; – Alex

+0

查看上面的編輯 –

+1

錯誤59參數1:無法從'string []'轉換爲'char []' – Alex

2

你可以這樣做:

var dictionary = new Dictionary<string, string>(); 
foreach (var key in Request.Params.AllKeys) 
{ 
    if (key.ToString().Contains("txt")) 
    { 
      int index = Request.Params[key].LastIndexOf("txt"); 
      Dictionary.Add(key, Request.Params[key].SubString(index)); 
    } 
}