0

我正在创建一个 .Net Web 服务来接收和处理来自 JQuery.form.js 的序列化表单数据,其中包含在表单中的几个多选。

发送到 Web 服务的序列化数据包括如下内容:

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

对于“travelwith”字段,显示表单的选择字段中有 10 项中的 3 项可供选择。

我可以使用以下内容构造一个强类型类:

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”的各种值是否会自动解析到类的Array travelwith中,以便我可以通过 LINQ 将 3 个项目值作为逗号分隔列表保存到 SQL 中?

我还没有走到这一步……我想我会得到关于我计划的方法的反馈。

感谢您的任何反馈,马丁。

4

1 回答 1

0

好的,因为我的KeyLargo站点的 JQuery 表单包含单选表单数据和多选数据,我需要能够将多选数据存储在 Sql 中的单个字段中。

我在尝试使用 Array 类型将数据存储在带有逗号分隔字符串的 Sql 单个字段中来处理服务器上的多个选择时遇到了问题。所以我解决上述问题的方法是使用 string[] 创建强类型类,以捕获通过 AJAX 传递到服务器的序列化多选数据:

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

我使用 Rick Strahl 的便捷方法来处理从客户端传递的多选数组数据:

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");

然后像这样加入多选字符串 [] 数组中的值:

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

轻松使我能够将数据保存到配置文件的相关表字段中。

于 2012-08-07T07:48:15.317 回答