2012-07-30 74 views
0

我正在創建一個.Net Web服務來接收和處理來自JQuery.form.js的序列化表單數據,該表單中包含一對多選。我應該使用Strong Type類中的Array或List值來接收jQuery序列化表單數據嗎?

發送到web服務的序列化的數據包括這樣的內容:該字段「travelwith」表示

&travelwith=4&travelwith=5&travelwith=6 

那的3項的多選擇出的形式的選擇字段10可用。

我可以構建一個強類型類,例如以下:

public class StoreUserSet 
{ 
public Array travelwith { get; set; } 
public string otherfield { get; set; } 
.... 
} 

,然後讓我的Web方法採取這樣的對象:

StoreUserSet StUserSet = new StoreUserSet(); // Create new class instance. 

[WebMethod()] 
public bool ProfSet1(StoreUserSet StUserSet) 
{ 
... 
} 

將在多選的各種值字段'travelwith'自動被解析爲類的數組與行,以便我可以將3個值作爲逗號分隔列表通過LINQ保存爲SQL?

我還沒有這麼遠......我想我會得到我的計劃方法的反饋。

感謝您的任何反饋意見, 馬丁。

回答

0

好吧,看到我的KeyLargo網站的JQuery表單包含單個選擇表單數據和多個選擇,我需要能夠在Sql中的單個字段中存儲多個選擇。

我遇到了一些問題,試圖處理服務器上的多個選擇使用數組類型存儲數據在一個Sql單字段與逗號分隔的字符串。所以,我解決我的上述問題的方法是創建一個字符串[]的強類型類捕獲通過AJAX傳遞給服務器序列化多選擇數據:

public class StoreUserSet 
{ 
public string[] travelwith { get; set; } 
public string otherfield { get; set; } 
.... 
} 

我用裏克施特拉爾的方便的方法來處理多選陣列數據從客戶機傳遞:

public static string[] FormMultiple(this NameValue[] formVars, string name) 
{ 
var matches = formVars.Where(nv => string.Equals(nv.name, name, 
StringComparison.OrdinalIgnoreCase)).Select(nv => nv.value).ToArray(); 
return (0 == matches.Length) ? null : matches; 
} 

要通過陣列迭代設置這樣的值:

profile_travelwith = formVars.FormMultiple("profile_travelwith"); 

然後,在多選擇串[]加入了值AR這樣的射線:

profile_travelwith = string.Join(",", StUserSet.profile_travelwith); 

很容易使我能夠將數據保存到配置文件的相關表字段。

相關問題