在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