传递List<;Guid>;到Json问题的行动方法

本文关键字:问题 方法 Json gt List lt Guid 传递 | 更新日期: 2023-09-27 18:25:31

我在构建要传递给我的操作方法的guid的Json字符串时遇到了一些问题。

我已经将我的指导方针收集到一个数组中,如下所示:

var regEx = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;
        var arrJson = {};
        var i = 0;
        $('#destGrid tr').each(function () {
            $(this).find('td').each(function () {
                var td = $(this);
                if (regEx.test(td[0].innerText)) {
                    arrJson[i] = td[0].innerText;
                    i++;
                }
            });
        });

然后,我对数组使用json.stringfy,并为其指定操作方法所采用的参数名称。

if (arrJson[0] != null) {
            var jsonData = JSON.stringify({ selectedMatters: arrJson });

此时,如果我调试javaScript,我可以检查字符串的值,并且我可以看到所有的引号都已转义:

"{'"selectedMatters'":{'"0'":'"f7c918d6-4e40-e211-9854-00155d010d00'",'"1'":'"77d4d836-ce45-e211-9854-00155d010d00'",'"2'":'"c6849622-cf45-e211-9854-00155d010d00'",'"3'":'"0ce4dc5b-cf45-e211-9854-00155d010d00'"}}"

为了完整起见,方法签名如下所示:

public bool UpdateMattersForGrid(List<Guid> selectedMatters)
{
}

我尝试了很多方法,但大多数时候selectedMatters都是空的。有人能解释为什么这不是模型绑定,以及我如何纠正它吗?我发现的其他例子只是告诉我做我目前正在做的事情。

感谢

传递List<;Guid>;到Json问题的行动方法

我将从javascript对象{}更改为javascript数组[]。这将映射到List<>

因此javascript看起来像这样:

var regEx = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;
        var arrJson = [];  //change to array
        var i = 0;
        $('#destGrid tr').each(function () {
            $(this).find('td').each(function () {
                var td = $(this);
                if (regEx.test(td[0].innerText)) {
                    arrJson.push(td[0].innerText);  // push into array
                    i++;
                }
            });
        });