在ASP.NET jQuery AJAX POST中传递值数组

我的页面上有一个ListBox,我想发表一个包含所有选定项目的AJAX帖子。这是我的代码:

$('#btnSubmit').click(function() {

$.ajax({

type: "POST",

url: 'Default.aspx/GetSelectedValues',

data: '{selectedValues: }',

contentType: "application/json; charset=utf-8",

dataType: "json",

success: OnSuccess

});

});

<select id="lbItems" multiple="multiple">

<option value="1">One</option>

<option value="2">Two</option>

<option value="3">Three</option>

<option value="4">Four</option>

</select>

我想以数组或逗号分隔的字符串形式传递选定的值。传递数据的最佳方法是什么,我该怎么做?

回答:

要将其作为正确的JSON传递,您要寻找的最终结果是:

// Assuming 1, 2, and 4 are selected.

{ selectedValues: ['1', '2', '4'] }

无论您进行序列化,第一步都是将所选值作为数组拉出。jQuery的.val()使此操作比您预期的要容易:

// Returns an array of #lbItems' selected values.

var selectedValues = $('#lbItems').val()

如果您正在寻找快速的’ndirty’,那么您可以采用这种方法并构建一个JSON数组字符串,如下所示:

var json = '{ selectedValues: [' selectedValues.join(',') '] }';

将其传递到接受名为selectedValues(区分大小写)数组/集合参数的.NET

JSON终结点中,应该可以完成您的工作。您可以将数组/集合指定为int类型或字符串类型,.NET将自动处理类型转换。

如果它变得比这更复杂,我建议使用JSON.stringify()来构建JSON,而不要手动进行。较新的浏览器是本机实现的,但是您需要在较旧的浏览器中包含json2.js(在较新的浏览器中包含json2.js并没有什么害处;如果可用,它会遵循其本机功能)。

以上是 在ASP.NET jQuery AJAX POST中传递值数组 的全部内容, 来源链接: utcz.com/qa/419271.html

回到顶部