2013-11-22 39 views
0

我想改變的web.config,以便鍵持有多個值:更改鍵容納多個值

我現在已經修改了代碼的建議,

應該發生什麼是,如果產品SKU與任一O形GREET或O- PEGC然後開始一個穿孔所得樣片模塊將在web.config文件推出,如果沒有將產物加入到籃爲正常,

我有:

<add key="PunchOutOnSKUPrefix" value="O-GREET,O-PEGC"/> 

,並在相關的控制器(ShoppingCartCOntroller)

Extensions.PunchOut punchOut = new Extensions.PunchOut(); 

      Boolean isPunchOut; 
      String id = productVariant.Sku; 
      String ticketId = null; 

      // Check that the product supports Punch out integration by looking at the first 3 letters of its SKU 

      if (String.IsNullOrWhiteSpace(id)) 
      { 
       isPunchOut = false; 
      } 
      else 
      { 
       option = id.Substring(0, 7); 
       isPunchOut = ConfigurationManager.AppSettings["PunchOutOnSKUPrefix"].Split(',').DefaultOrNull(s => s.Equals(option)); 
     } 
+1

你能解釋那行代碼試圖做什麼? 'Split'返回一個數組,並且將它與導致錯誤的字符串進行比較。 – David

+0

現在問題修改了新的代碼和解釋 – Corbo152

+0

現在我明白了,更改爲'ConfigurationManager.AppSettings [「PunchOutOnSKUPrefix」] .Split(',')。Any(s => id.StartsWith(s))'應該有所幫助。 –

回答

1

拆分,如果你要搜索特定的值返回一組選項,使用:

var option = id.Substring(0, 7); 
var isPunchOut = ConfigurationManager.AppSettings["PunchOutOnSKUPrefix"].Split(',').DefaultOrNull(s => s.Equals(option)); 

如果你想檢查是否id開始與任何值,使用:

var isPunchOut = ConfigurationManager.AppSettings["PunchOutOnSKUPrefix"].Split(',').Any(s => id.StartsWith(s)); 
+0

現在使用完整的代碼片段修改了問題的詳細信息,並根據您的建議添加了修改後的代碼,沒有錯誤只是將產品添加到正常的籃子中 – Corbo152